Re: [問題] 依照迴圈變數讀取陣列

作者: JiGo (ㄐㄍ)   2013-12-27 11:43:09
※ 引述《snowanimal (動物先生)》之銘言:
: ※ 引述《JiGo (ㄐㄍ)》之銘言:
: : 目前有一筆11x11的資料(二維陣列?)
: : 每一個橫行的資料我都會分別做計算所以使用一維陣列去讀值
: : 但是我要的資料只有矩陣的一半,對角線是右上到左下
: : 如下:
: : 1 1 1 1 1 1 1 1 1 1 1
: : 1 1 1 1 1 1 1 1 1 1 0
: : 1 1 1 1 1 1 1 1 1 0 0
: : 1 1 1 1 1 1 1 1 0 0 0
: : 1 1 1 1 1 1 1 0 0 0 0
: : 1 1 1 1 1 1 0 0 0 0 0
: : 1 1 1 1 1 0 0 0 0 0 0
: : 1 1 1 1 0 0 0 0 0 0 0
: : 1 1 1 0 0 0 0 0 0 0 0
: : 1 1 0 0 0 0 0 0 0 0 0
: : 1 0 0 0 0 0 0 0 0 0 0
: 1的部分是我要讀的值,並做一點計算
: 如果我沒搞錯問題,那麼方法該跟下面的方式差不多。
: 先聲明一點,因為太久沒用fortran,所以我無法保證語法的正確性。
: do x=LYR,1,-1 (迴圈11次)
: array(x)=0.0
: read (,)array(x)
: enddo
: 迴圈的變數可以由小變大,也可以由大變小。
: 所以你就讓他從11格讀到剩下1格就好啦,然後計算的東西就包在迴圈裡面即可。
: 我不確定是不是百分之百正確,因為太久沒用fortran,所以語法可能有誤。
應該這樣說
我是用下面的方式去讀值
101 READ(Rline,FMT3)U_B,U_A
102 READ(Rline,FMT4)U_1,U_2,U_3,U_4,U_5,U_6,U_7,U_8,U_9
FMT3和FMT4會隨迴圈數變化
先讀最外面的兩個值
再讀中間的其他值
但是在第二個迴圈的時候U_9因為不在格式中所以會有錯誤
第三個圈時U_8和U_9亦然
因此造成程式停擺
所以想問說在102行後面讀取值的編號與個數
要怎麼用成可以隨迴圈數改變
因為每個值都會用來計算
所以想對讀取到的每個值做編號
隨後可能就是利用 U_A+2*U_1+3*U_2+.......+n*U_B 之類的計算

Links booklink

Contact Us: admin [ a t ] ucptt.com