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
广告

© . All rights reserved.