Fortran - 約簡函式



下表描述了約簡函式

函式 描述
all(mask, dim) 它返回一個邏輯值,指示 mask 中的所有關係是否都為 .true.,如果給出第二個引數,則僅包含所需的維度。
any(mask, dim) 它返回一個邏輯值,指示 mask 中的任何關係是否為 .true.,如果給出第二個引數,則僅包含所需的維度。
count(mask, dim) 它返回一個數值,表示 mask 中為 .true. 的關係的數量,如果給出第二個引數,則僅包含所需的維度。
maxval(array, dim, mask) 它返回陣列 array 中的最大值,這些值服從第三個引數 mask 中的關係(如果給出),如果給出第二個引數 dim,則僅包含所需的維度。
minval(array, dim, mask) 它返回陣列 array 中的最小值,這些值服從第三個引數 mask 中的關係(如果給出),如果給出第二個引數 DIM,則僅包含所需的維度。
product(array, dim, mask) 它返回陣列 array 中所有元素的乘積,這些元素服從第三個引數 mask 中的關係(如果給出),如果給出第二個引數 dim,則僅包含所需的維度。
sum (array, dim, mask) 它返回陣列 array 中所有元素的和,這些元素服從第三個引數 mask 中的關係(如果給出),如果給出第二個引數 dim,則僅包含所需的維度。

示例

以下示例演示了該概念

program arrayReduction

   real, dimension(3,2) :: a 
   a = reshape( (/5,9,6,10,8,12/), (/3,2/) ) 
   
   Print *, all(a>5)
   Print *, any(a>5)
   Print *, count(a>5)
   Print *, all(a>=5 .and. a<10)
  
end program arrayReduction

當以上程式碼編譯並執行時,會產生以下結果

F
T
5
F

示例

以下示例演示了該概念

program arrayReduction
implicit none

   real, dimension(1:6) :: a = (/ 21.0, 12.0,33.0, 24.0, 15.0, 16.0 /)
   Print *, maxval(a)
   Print *, minval(a)
   Print *, sum(a)
   Print *, product(a)
   
end program arrayReduction 

當以上程式碼編譯並執行時,會產生以下結果

33.0000000    
12.0000000    
121.000000    
47900160.0  
fortran_arrays.htm
廣告