Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如标题所述。我想为每个循环设置一定的间隔时间,比如 60 秒。
我的问题是我在循环中有一个代码可以使用外部设备执行测量。此测量需要 5-10 秒。所以我不能简单地在循环内使用 pause(60) ,因为间隔时间取决于每次测量需要多长时间。
有没有办法固定循环的时间间隔?
听起来您可以使用并行线程来实现您想要的。一个线程每六十秒启动一次测量,使用一个工作线程,这样测量就不会阻塞时间间隔。
也许尝试使用以下batch功能:
batch
while(True) hBatch = batch(@doMeasurement); pause(60); measurement = fetchOutputs(hBatch){1} end
最好使用以下timer功能:
timer
t = timer('TimerFcn', @doMeasurement, 'Period', 60.0); start(t)
你想要这样的东西:
k=1; % or any value except 0 time1=clock; while ~(k==0) time2=clock; k=etime(time2,time1); % your statements loop