我每天多次运行一个matlab脚本,很多时候执行它需要很长时间.我想要做的是启动一个计时器来跟踪脚本运行的时间,并在脚本超过指定的秒数时停止脚本
我在一个简单的脚本上测试了这个原理:
waittime = 5;
t = timer('TimerFcn','error(''Process ended because it took too long'')',waittime);
start(t)
pause(10);
Run Code Online (Sandbox Code Playgroud)
我期望发生的是这个函数等待5秒,然后它将执行停止功能,这是error('Process ended because it took too long')命令.
运行此命令时,将执行stop命令,但不会停止主脚本运行.
在我的命令窗口中,我看到了
Error while evaluating TimerFcn for timer 'timer-20'
Process ended because it took too long
Run Code Online (Sandbox Code Playgroud)
之后脚本不会停止,并且会持续运行整整10秒钟
我不希望在TimerFcn函数上抛出此错误,我希望在运行的脚本上抛出此错误,使其停止运行.
有什么方法可以控制错误被编译的脚本/函数吗?
如果您有权访问脚本并且可以定期检查脚本内的时间,则可以执行以下操作
waittime = 3;
endt=true;
t = timer('TimerFcn','endt=false; disp(''Timer!'')','StartDelay',waittime);
start(t);
i=1;
while endt==true
a=exp(i);
i=i+1;
pause(0.1);
end
Run Code Online (Sandbox Code Playgroud)
如果您没有任何周期性的位或无法访问脚本,我认为这里描述了您最好的选择
希望这有帮助
| 归档时间: |
|
| 查看次数: |
423 次 |
| 最近记录: |