假设我有一个评估为:
function test_timer()
a = timer ;
set(a, 'executionMode', 'fixedRate','TimerFcn','disp(rand)')
start(a)
end
..我不小心在函数的子句中遗漏了“stop(a)”。如何在不使用命令窗口关闭 MATLAB 的情况下停止运行计时器对象(或所有计时器对象)?
您可以使用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 =
[]