有人可以告訴我爲什麼這個Octave算法不執行最後一次迭代,其中i = 4和j = 2?它似乎受內部for循環中的中斷條件的影響,但這不應該影響最後一次迭代。八度算法循環迭代
x = [2, 3, 4];
h = [1, 2];
y = [0, 0, 0, 0];
for i = 1:4
for j = 1:2
printf("i = %d, j = %d\n", i, j);
if((i-j < 0) || (i-j > 2)) break; endif
y(i) = y(i) + h(j) * x(i-j+1);
endfor
endfor
我測試過它在我的Debian系統上,它停在我= 4和j = 1的輸出是:
i = 1, j = 1
i = 1, j = 2
i = 2, j = 1
i = 2, j = 2
i = 3, j = 1
i = 3, j = 2
i = 4, j = 1
這個答案非常明確和有幫助。偉大的工作和+1的替代方式做到這一點。先生,祝你好運!不幸的是,我沒有足夠的積分來投票。 – 2014-10-09 11:08:20