1

如标题所述。我想为每个循环设置一定的间隔时间,比如 60 秒。

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

有没有办法固定循环的时间间隔?

4

2 回答 2

3

听起来您可以使用并行线程来实现您想要的。一个线程每六十秒启动一次测量,使用一个工作线程,这样测量就不会阻塞时间间隔。

也许尝试使用以下batch功能:

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

最好使用以下timer功能:

t = timer('TimerFcn', @doMeasurement, 'Period', 60.0);
start(t)
于 2012-10-31T04:58:24.483 回答
0

你想要这样的东西:

k=1; % or any value except 0
time1=clock;
while ~(k==0)
time2=clock;
k=etime(time2,time1);
% your statements
loop
于 2012-11-01T03:52:51.227 回答