添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
爱运动的打火机  ·  使用 AWK ...·  2 年前    · 
知识渊博的铁链  ·  sql - How long can we ...·  2 年前    · 
挂过科的人字拖  ·  java - Failure to add ...·  2 年前    · 
SCORE(1,1), SCORE(1,2), SCORE(1,3), SCORE(1,4), SCORE(2,1), SCORE(2,2), SCORE(2,3), SCORE(2,4), SCORE(3,1), SCORE(3,2), SCORE(3,3), SCORE(3,4)

先變動第一個註標,再變動第二個的,稱為依行 (columnwise) 次序。即先處理第一行的各 項資料,再處理第二行,依此次序,直到最後一行。
再以上述 SCORE(3,4) 為例, 其處理次序如下,

SCORE(1,1), SCORE(2,1), SCORE(3,1), SCORE(1,2), SCORE(2,2), SCORE(3,2), SCORE(1,3), SCORE(2,3), SCORE(3,3), SCORE(1,4), SCORE(2,4), SCORE(3,4)

假如沒有規定次序,例如在輸出/輸入串列中 使用陣列名稱 , 依照 FORTRAN 慣例, 二維陣列依行次序處理

使用 DO 迴圈

INTEGER LEVEL, LIMIT PARAMETER (LEVEL = 4, LIMIT = 50) REAL SCORE(LEVEL, LIMIT) INTEGER I, J DO 20 I = 1, LEVEL DO 10 J = 1, LIMIT READ *, SCORE(I, J) 10 CONTINUE 20 CONTINUE

使用陣列名稱

INTEGER SCORE(3,4) READ *, SCORE

使用隱式 DO 迴圈

READ *, (( SCORE(I,J), J = 1, LIMIT ) , I=1, LEVEL ) TEMPS (source) 上一章談到副程式可以使用一維陣列做為引數,同樣可以使用多維陣列做為引數。 同樣實際引數和形式引數,都必須有陣列宣告。

8.3 例題 :

  • Pollution report: POLLUT (source)
  • Oceanographic data analysis: OCEAN (source)

    8.4 矩陣

    含有 m 列和 n 行數值的二維陣列, 稱為 m x n 矩陣 (matrix)。

    兩個矩陣 A 和 B 相等 ,寫成 A = B, 假如

  • A 的列數和 B 的列數相同, 而且A 的行數也和 B 的行數相同。
  • A 的每一項和 B 相對應的每一項相等。
  • 矩陣加減,純量相乘

    假設 A ij 和 B ij 分別為 m x n 矩陣 A 和 B 的第 i 列和第 j 行的項目, 則 A + B 的第 i 列和第 j 行的項目為 A ij + B ij

    同樣地, A - B 的第 i 列和第 j 行的項目為 A ij - B ij
    純量 c 和 m x n 矩陣 A 相乘, 其乘積矩陣 cA 的第 i 列和第 j 行的項目為 cA ij

    以下是處理矩陣相加的 FORTRAN 副程式, 略為修改即可處理矩陣相減和純量相乘。

    SUBROUTINE MATSUM(A, B, C, LIMIT, M, N) INTEGER LIMIT, M, N, I, J REAL A(LIMIT, LIMIT), B(LIMIT, LIMIT), C(LIMIT, LIMIT) DO 20 I = 1, M DO 10 J = 1, N C(I,J) = A(I,J) + B(I,J) 10 CONTINUE 20 CONTINUE

    假設 A 為 m x n 矩陣, B 為 n x p 矩陣。 注意 A 的行數必須 等於 B 的列數。 則 乘積 AB 為一 m x p 矩陣, 其第 i 列和第 j 行的項目為

    A i1 B 1j + A i2 B 2j + ... + A in B nj

    以下是處理矩陣相乘的 FORTRAN 副程式。

    SUBROUTINE MATMUL(A, B, C, LIMIT, M, N, P) INTEGER LIMIT, M, N, P, I, J, K REAL A(LIMIT, LIMIT), B(LIMIT, LIMIT), C(LIMIT, LIMIT) DO 30 I = 1, M DO 20 J = 1, N C(I,J) = 0.0 DO 10 K = 1, P C(I,J) = C(I,J) + A(I,K) * B(K,J) 10 CONTINUE 20 CONTINUE 30 CONTINUE

    FORTRAN 90 特色

    處理矩陣可用下列預先界定的函數:

    MAXVAL(A) MINVAL(A) MAXLOC(A) MINLOC(A) PRODUCT(A) SIZE(A)