Боюсь ошибиться, потому что работаю с MatLAB, а не Octave, но насколько я знаю, они очень похожи, во всяком случае в простых случаях.
Так вот, настоятельно
не рекомендую использовать циклы, если можно просто работать с массивом.
Допустим, мне нужно найти сумму от j=0 до N-1, скажем, выражения 2^(N-1-j).
в MatLAB (и, вероятно, в Octave) я бы решал это, например, так, взяв для определенности
:
N=10;
j=0:N-1;
summa=sum(2.^(N-1-j));
-- Вт янв 10, 2012 15:06:21 --или вот так, если, например, нужно просуммировать элементы с
-го по
-ый:
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() в этом случае удобнее (и работает быстрее), чем цикл