Сумма определенных элементов в массиве в Фортране

У меня есть такой массив:

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 элементов отдельно, какую функцию использовать и как?


person Andrew Fakhry    schedule 23.02.2014    source источник
comment
SUM почти наверняка то, что вы хотите, но после суммирования: элементы с 1 по 5, с 6 по 10 и т. Д .; элементы с 1 по 5, со 2 по 6, с 3 по 7 и т.д .; элементы 1, 6, 11, 16, 21 и 2, 7, 12, ... и т. д.?   -  person francescalus    schedule 24.02.2014
comment
От 1 до 5, затем от 6 до 10, затем от 11 до 15 и т. Д.   -  person Andrew Fakhry    schedule 24.02.2014


Ответы (2)


Вы можете использовать цикл с размером шага:

do i=1, N, 5

Затем внутренняя функция sum применяется к срезам массива:

sum (a(i: i+4))
person M. S. B.    schedule 23.02.2014
comment
Или, если кто-то не возражает против копирования массива, sum с dim= и reshape. - person francescalus; 24.02.2014

Одно из возможных решений:

do i=1,20,5                     
    x=0.0                 
    x=(sum(a(i:i+4)))
    write(*,*) x           
end do
person Ignacio Borge Durán    schedule 23.09.2020