Боюсь ошибиться, потому что работаю с MatLAB, а не Octave, но насколько я знаю, они очень похожи, во всяком случае в простых случаях.
Так вот, настоятельно
не рекомендую использовать циклы, если можно просто работать с массивом.
Допустим, мне нужно найти сумму от j=0 до N-1, скажем, выражения 2^(N-1-j).
в MatLAB (и, вероятно, в Octave) я бы решал это, например, так, взяв для определенности
![$N =10$ $N =10$](https://dxdy-01.korotkov.co.uk/f/c/e/e/cee9f87e6b9532e1b777deccbe8aa7a882.png)
:
N=10;
j=0:N-1;
summa=sum(2.^(N-1-j));
-- Вт янв 10, 2012 15:06:21 --или вот так, если, например, нужно просуммировать элементы с
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
-го по
![$k$ $k$](https://dxdy-03.korotkov.co.uk/f/6/3/b/63bb9849783d01d91403bc9a5fea12a282.png)
-ый:
N=10;
j=0:N-1;
arr=2.^(N-1-j);
n=3;
k=8;
summa=sum(arr(n:k));
или, например, нужно просуммировать нечетные элементы...
N=10;
j=0:N-1;
arr=2.^(N-1-j);
summa=sum(arr(1:2:end));
или для элементов, номера которых содержатся в другом массиве
N=10;
j=0:N-1;
arr=2.^(N-1-j);
arr_index=[1 3 7 8];
summa=sum(arr(arr_index));
в общем, система гибкая, а функция sum() в этом случае удобнее (и работает быстрее), чем цикл