-1
for ii=1:5
a(ii) = (ii)^2;
end
a
言う、私が5から4にループインデックスの終了値を変化させる、所定の答えはまだである[1 4 9 16 25]matlab - ループインデックスを変更するたびに変数をクリアする必要がありますか?
のみI 'すべてクリア' 場合、それは1 4 9 [与えます16]
これは正常ですか?
for ii=1:5
a(ii) = (ii)^2;
end
a
言う、私が5から4にループインデックスの終了値を変化させる、所定の答えはまだである[1 4 9 16 25]matlab - ループインデックスを変更するたびに変数をクリアする必要がありますか?
のみI 'すべてクリア' 場合、それは1 4 9 [与えます16]
これは正常ですか?
はい、これは正常です!あなたが実行すると
これは:
あなたが期待する通りfor ii=1:5
a(ii) = (ii)^2;
end
a
、それはあなたを与える:a = [1 4 9 16 25]
。 a
のサイズは1x5に設定されています。
は今、あなたが実行したときに、この:
for ii=1:4
a(ii) = (ii)^2;
end
a
あなたが実際に(同じ値で)a
の4インデックスに1の以前の値を置き換えているが、あなたはa
の第5回インデックスに何もされておらず、したがって、それはそのままです。
ランは、より良く理解するために(変数をクリアせずに)、以下:
for ii=1:4
a(ii) = (ii)^5;
end
a
これはあなたを与える:a = [1 32 243 1024 25]
を私はこれがあなたの質問に答える願っています!
申し訳ありません[1 4 9 16]終了インデックスを編集した後、またはループを実行した後のAの結果ですか?新しい値 – knowads
私はなぜそれが理解できるかと思います。たぶんそれは私が事前に割り当てない/初期化していないからです – Agnel
でループを実行した後の – Agnel