SUM (ARRAY , DIM , MASK) 或 SUM (ARRAY , MASK)
用途
計算陣列中所選元素的總和。
類別
轉換函數
引數類型和屬性
- ARRAY
- 您要加總其元素的
NUMERIC
陣列。 - DIM (選用)
INTEGER
純量。 其值必須在範圍 1 ≤ DIM ≤ rank (ARRAY) 內。- MASK (選用)
- 邏輯表示式。 如果它是陣列,則它必須符合形狀中的 ARRAY。 如果 MASK 是純量,則純量值會套用至 ARRAY 中的所有元素。
結果值
如果 DIM 存在,則 結果 是等級等級 (ARRAY) -1 的陣列,具有與 ARRAY 相同的資料類型和類型類型參數。 如果遺漏 DIM ,或若 MASK 的等級為 1 ,則 result 是純量。
結果 是透過下列其中一種方法來計算:
- 方法 1:
- 如果只指定 ARRAY , result 會等於 ARRAY 所有陣列元素的總和。 如果 ARRAY 是大小為零的陣列,則 結果 等於零。
- 方法 2:
- 如果同時指定 ARRAY 和 MASK ,則 result 等於 ARRAY 的陣列元素總和,這些陣列元素在 MASK 中具有對應的陣列元素,且值為 。TRUE.。 如果 MASK 沒有值為 的元素。TRUE., result 等於零。
- 方法 3:
- 如果也指定 DIM ,則結果值等於 ARRAY 沿著維度 DIM 且在 MASK 中具有對應 true 陣列元素的陣列元素的總和。
因為 DIM 和 MASK 都是選用的,所以可以使用各種引數組合。 當 -qintlog 選項指定有兩個引數時,第二個引數會參照下列其中一項:
- MASK (如果是整數、邏輯、位元組或無類型的陣列)
- DIM (如果它是整數、位元組或無類型的純量)
- MASK (如果它是邏輯類型的純量)
範例
方法 1:
! Sum all the elements in an array.
RES = SUM( (/2, 3, 4 /) )
! The result is 9 because (2+3+4) = 9
方法 2:
! A is the array (/ -3, -7, -5, 2, 3 /)
! Sum all elements that are greater than -5.
RES = SUM( A, MASK = A .GT. -5 )
! The result is 2 because (-3 + 2 + 3) = 2
方法 3:
! B is the array | 4 2 3 |
! | 7 8 5 |
! Sum the elements in each column.
RES = SUM(B, DIM = 1)
! The result is | 11 10 8 | because (4 + 7) = 11
! (2 + 8) = 10
! (3 + 5) = 8
! Sum the elements in each row.
RES = SUM(B, DIM = 2)
! The result is | 9 20 | because (4 + 2 + 3) = 9
! (7 + 8 + 5) = 20
! Sum the elements in each row, considering only
! those elements greater than two.
RES = SUM(B, DIM = 2, MASK = B .GT. 2)
! The result is | 7 20 | because (4 + 3) = 7
! (7 + 8 + 5) = 20