2017-01-09 277 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