2012-12-06 13 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 

乾杯, -