2017-01-09 18 views
0

for loopを使用してコード内で10ステップごとに反復しようとしています。 コードは以下のように書かれています。matlab forループを10ステップごとに反復する

for i=10:10:30 
for j=20:10:40 
    k=i+j 
end 
end 

だから、最初の反復は20:30し、最終的に30:40、その後、10:20なります.But私はちょうど10:2020:30で入力した場合、それは大丈夫に動作し、私はthat.Howeverを使用するときに私のコード内のエラーを得続けます。

+0

ような何かをする必要がありますか?また、最初の反復は '[10、20、30]'、2番目は '[20、30、40]'(各要素は配列ではなく1つの値*であることに注意してください) – Suever

+0

'k = i:j'から読み込んでいるものが配列ではないことを意味する反復の後に私のコードで行いますが、あなたがちょうど言ったことから、それは私が2つ(すなわち' i'と 'j ')を一緒に' k = i:j 'のように繰り返します。 –

答えて

1

あなたが書いたようにネストされたforループを持つことは、ループの順序付けのために期待した結果を得られないでしょう。 kの割り当て時にijの値を見ると、次の値が表示されます。

i j 
10 20 
10 30 
10 40 
20 20 
20 30 
20 40 
30 20 
30 30 
30 40 

あなたは10:2020:30、最後に30:40に等しくなるようにkのために代わりにしたい場合は、あなたが取得しているエラーです何この

starts = 10:10:30; 
ends = 20:10:40; 

% Only use a single for loop 
for k = 1:numel(starts) 
    k = starts(k):ends(k); 

    % Do stuff with this k 
end 
関連する問題