如何使MATLAB函数等到计时器停止运行

时间:2013-08-21 14:19:36

标签: matlab function timer

我有一个函数func1,它调用另一个函数func2,然后启动timer object。我需要func1暂停,直到计时器停止。我怎么能这样做?

定时器不是SingleShot定时器,但定时器定时器在其TimerFcn中测试的条件下使用stop()停止。

2 个答案:

答案 0 :(得分:3)

使用wait()暂停执行,直到计时器停止:

function func1
    thandle = func2;
    wait(thandle)
    disp(1)
end

function h = func2
    h = timer('StartFcn',@(ev,obj)fprintf('Started timer'),'TimerFcn',@(ev,obj)pause(2));
    start(h)
end

请注意func2()func1()的子函数,但也可以是外部函数,唯一的要求是它返回timer对象的句柄。

只需在命令窗口中调用foo即可尝试该示例。

答案 1 :(得分:2)

您可以将计时器对象返回到func1并在那里实现等待循环:

while strcmp(to.Running, 'on')
    % Do Nothing
end