2016-09-11 12 views
-1
for ii=1:5  
a(ii) = (ii)^2; 
end 
a 

言う、私が5から4にループインデックスの終了値を変化させる、所定の答えはまだである[1 4 9 16 25]matlab - ループインデックスを変更するたびに変数をクリアする必要がありますか?

のみI 'すべてクリア' 場合、それは1 4 9 [与えます16]

これは正常ですか?

+0

申し訳ありません[1 4 9 16]終了インデックスを編集した後、またはループを実行した後のAの結果ですか?新しい値 – knowads

+0

私はなぜそれが理解できるかと思います。たぶんそれは私が事前に割り当てない/初期化していないからです – Agnel

+0

でループを実行した後の – Agnel

答えて

1

はい、これは正常です!あなたが実行すると

これは:

あなたが期待する通り
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]

を私はこれがあなたの質問に答える願っています!

関連する問題