我在MATLAB R2013a中遇到了以下问题,由于某些原因我不明白在函数中定义了一个定时器(包括TimerFcn)时没有调用onCleanup函数.
我添加了两个显示问题的最小示例:
首先是按预期调用清理例程的工作版本:
function mytest(time)
t = timer();
myclean = onCleanup(@() disp('function ended'));
pause(time);
end
Run Code Online (Sandbox Code Playgroud)
现在是没有调用清理的错误版本(当函数正常结束或按下ctrl + c时)
function mytest2(time)
t = timer();
t.TimerFcn = @(o,s)disp(' ... waiting for some time');
myclean = onCleanup(@() disp('function ends'));
pause(time);
end
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到任何提示,为什么定时器或更具体的TimerFcn定义会改变清理代码的执行?
matlab ×1