0

次の場合に正常に動作する for ループがあります。

n=20 

for (i = 1: i + 1: n - 1)
    disp(['Iteration count =' num2str(i)])
    x = p + (i * h);
    fAdd = f(x);
    fNew = fOld + fAdd;
    disp(['fNew = ' num2str(fNew)])
    fOld = fNew;
end

でもいつ

n = [20 40];

ループは 20 回の反復後にのみ停止し、n=40 の場合、さらに 20 個の fNew 値が欠落しています。またはいつ

n = [40 20]

ループは 40 回の反復で停止しますが、n=20 の場合に余分な 20 個の fNew 値は必要ありません。これを回避する方法はありますか? どんな助けでも大歓迎です!

4

1 に答える 1

0

ループを 40 にしたいようですforが、コードの一部は i=20 までしか実行されませんか? ifのときにコードの特定の部分を評価できるようにするステートメントを作成できますi <= 20。以下のようなものですか?

for i = 1:n
    disp(['Iteration count =' num2str(i)])
    if (i <= 20)
        x = p + (i * h);
        fAdd = f(x);
        fNew = fOld + fAdd;
        disp(['fNew = ' num2str(fNew)])
        fOld = fNew;
    end
end
于 2013-08-16T02:05:47.887 に答える