【问题标题】:Sum of certain elements in an array in FortranFortran中数组中某些元素的总和
【发布时间】:2020-09-24 04:31:15
【问题描述】:

我有一个这样的数组:

1717.531
1717.364
1716.725
1716.723
1716.536
1716.304
1716.221
1715.998
1715.799
1715.702
1715.648
1715.254
1715.186
1714.733
1714.532
1714.266
1714.223
1714.094
1713.943
1713.873
1713.803
1713.578

我想分别对每个 5 个元素求和,使用哪个函数以及如何使用?

【问题讨论】:

  • SUM 几乎可以肯定是你想要的,但你是在求和之后:元素 1 到 5,以及 6 到 10 等;元素 1 至 5、2 至 6、3 至 7 等;元素 1、6、11、16、21 和 2、7、12……等?
  • 从 1 到 5,然后从 6 到 10,然后从 11 到 15,依此类推

标签: fortran gfortran


【解决方案1】:

您可以使用带步长的循环:

do i=1, N, 5

然后将内在函数 sum 应用于数组的切片:

sum (a(i: i+4))

【讨论】:

  • 或者如果不介意数组副本,sumdim=reshape
【解决方案2】:

一种可能的解决方案是:

do i=1,20,5                     
    x=0.0                 
    x=(sum(a(i:i+4)))
    write(*,*) x           
end do

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2020-07-01
    • 1970-01-01
    • 2019-05-31
    • 2017-04-30
    相关资源
    最近更新 更多