【问题标题】:Have for loop script do something only every Nth iteration让 for 循环脚本仅在每 N 次迭代中执行一次
【发布时间】:2012-12-06 04:22:19
【问题描述】:

在 MATLAB(或更一般地)中,如果我只想让某事发生,例如,for loop 的每 50 次迭代,我怎么能比下面做得更好?那就是不要写出+50的所有可能值。谢谢。

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

【问题讨论】:

  • 我不知道 MATLAB 语法,但您正在寻找模数(除法后的余数)函数:例如if i mod 50 = 0 ..

标签: matlab for-loop iteration


【解决方案1】:

你想要的是

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

【讨论】:

  • 我将您的答案 (+1) 更改为 Matlab 语法(因为这是一个 Matlab 问题),希望没关系。干杯。
【解决方案2】:

你想要的是

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

干杯,--

【讨论】: