如何在函数执行后从函数的工作空间中停止MATLAB计时器对象

时间:2012-12-24 09:20:03

标签: matlab timer

说我有一个评估为的函数:

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

end

..而且我不小心在函数的子句中省略了'stop(a)'。 如何使用命令窗口停止计时器对象(或所有计时器对象)而不关闭MATLAB?

1 个答案:

答案 0 :(得分: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 =

     []