2017-01-09 493 views
0

我想重複使用for loop在代碼每10步。 代碼寫在下面;MATLAB for循環迭代每10步

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

所以,在第一次迭代將10:20,然後20:30最後30:40。但我一直在我的代碼得到錯誤,當我使用that.However,如果我只是在10:2020:30類型的,它的作品沒關係。

+0

什麼是你所得到的錯誤?另外,在第一迭代將是'[10,20,30]'和第二將'[20,30,40]'(請注意,每個元素是一個單一的值*不*陣列。 – Suever

+0

我得到的錯誤已到做迭代後我的代碼,這意味着不管它是從'K讀= I:j'不是一個數組,但是從你剛纔說的,這意味着如果我把兩個(即'i'和'學家')一起像'k = i:j'我應該爲每次迭代獲得一個數組嗎? –

回答

1

有嵌套for循環就像你寫的是不會得到你所期望,因爲循環的順序的結果。如果我們看一下ij值在k分配的時候,我們會看到下面的值。

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

如果你想而不是爲k等於10:20,然後20:30最後30:40,那麼你需要做這樣的事情

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