以一定间隔循环(Matlab)

时间:2012-10-31 04:36:29

标签: matlab loops time intervals

如标题所述。 我希望每个循环有一定的间隔时间,比如说60秒。

我的问题是我在循环中有一个代码用外部设备执行测量。 此测量需要5-10秒。 所以我不能简单地在循环中使用pause(60),因为间隔时间取决于每次测量需要多长时间。

有没有办法修复循环的时间间隔?

2 个答案:

答案 0 :(得分:3)

听起来你可以使用并行线程来实现你想要的效果。一个线程使用工作线程每60秒启动一次测量,以便测量不会阻塞时间间隔。

或许尝试batch函数,如下所示:

while(True)
    hBatch = batch(@doMeasurement);
    pause(60);
    measurement = fetchOutputs(hBatch){1}
end

最好使用timer函数:

t = timer('TimerFcn', @doMeasurement, 'Period', 60.0);
start(t)

答案 1 :(得分:0)

你想要这样的东西:

k=1; % or any value except 0
time1=clock;
while ~(k==0)
time2=clock;
k=etime(time2,time1);
% your statements
loop