如标题所述。 我希望每个循环有一定的间隔时间,比如说60秒。
我的问题是我在循环中有一个代码用外部设备执行测量。 此测量需要5-10秒。 所以我不能简单地在循环中使用pause(60),因为间隔时间取决于每次测量需要多长时间。
有没有办法修复循环的时间间隔?
答案 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