2012-12-06 11 views
1

在MATLAB(或者更一般地说)中,如果我只想要发生某些事情,例如,每做一次for loop的50次迭代,我怎么能比下面做得更好?那就是不写出每个可能的值+50。谢谢。有for循环脚本只有每第N次迭代才会执行某些操作

for i = 1:1060; 
    if i = 50 || 100 || 150 || ... || 1050 
     randi(i); % for example, just do something 
    end; 
end; 
+2

我不知道MATLAB的语法,但你正在寻找模数(除法后的余数)函数:E.g. '如果我mod 50 = 0' .. – Blorgbeard

回答

6

你想要的是

if mod(i, 50) == 0 
    do something 
+1

我改变你的答案(+1)为Matlab语法(因为它是一个Matlab问题),希望没关系。干杯。 –

5

你想要的是

for i = 0:50:1050 
    do_stuff(i); 
end 

,除非它是从你的问题不清楚,如果以前的答案是你真正想要的,你在看起来像这样的情况下可能需要

for i = 1:1060 
    if mod(i, 50) == 0 
     do_something(i) 
    end 
    do_something_else(i) 
end 

干杯, -