1

假设我有一个评估为:

function test_timer()
a = timer ;
set(a, 'executionMode', 'fixedRate','TimerFcn','disp(rand)')
start(a)

end

..我不小心在函数的子句中遗漏了“stop(a)”。如何在不使用命令窗口关闭 MATLAB 的情况下停止运行计时器对象(或所有计时器对象)?

4

1 回答 1

3

您可以使用timerfind查找要停止的计时器。

像这样:

tmr = timer('Name', 'timer1', 'TimerFcn', @(x,y)disp('Timer running'));
start(tmr);
stop(timerfind('Name', 'timer1'));

您基本上可以搜索可以在计时器函数中定义的任何属性。

编辑:您可以使用该delete功能删除计时器。

让我们创建几个计时器来查找和删除它们:

tmr1=timer('Name', 'timer1', 'Period', 5, 'TimerFcn', @(x,y)disp('Timer 1 running'));
tmr2=timer('Name', 'timer2', 'Period', 5, 'TimerFcn', @(x,y)disp('Timer 2 running'));
start(tmr1);
start(tmr2);
tmrList=timerfind('Period', 5); % Find the timers whose periods are 5 seconds.
stop(tmrList);
timerfind

Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      5        1x1 function_handle arraytimer1
   2       singleShot      5        1x1 function_handle arraytimer2


delete(tmrList);
timerfind

ans =

     []
于 2012-12-24T09:32:25.733 回答