2016-05-16 9 views
0

ながら私はしかし、結果出力、それは私だけ一回の反復の答えを与えるとき、コードMATLABループ構文

k = 0; 
while k<3 
k = k+1; 
a = 5^k; 
disp(a); 
end 

を使用しています。私はあなたの代わりにこのコードを使用する場合の違いは、コンピュータには何か思ったんだけど:

clear, clc 
k = 0; 
while k<3 
k = k+1; 
a(k) = 5^k; 
end 
disp(a) 

なぜ最初のコードサンプル出力のみ125、一方、第2の1つの出力5、25、および125を?

+0

最初のコード結果が125であることを確認してください。 – Spiderman

+0

私は '[5; 25; 125] '、' [5,25,125] 'という2つのコードがあります。なぜあなたは 'のためにではなく'しているのですか? – user1543042

+0

[Getting Started document](http://www.mathworks.com/academia/student_version/learnmatlab.pdf) – patrik

答えて

1

最初のコードでは、変数aはスカラーです。 したがって、Matlabはすべての反復で変数aに値を消去して書き換えます。

しかし、2番目のコードの場合、配列インデックスkを変数aに定義したとおり、Matlabは変数a(k)を配列変数として認識します。そして、各反復で、Matlabは対応する配列ポイントに割り当てられた値5^kを書き込みます。

+0

ありがとう、それは素晴らしい解釈と説明です! –

+0

あなたは大歓迎です! – KKS