How to stop a function if it exceeds a certain time?

9 次查看(过去 30 天)
I am using Matlab to call an extrenal function. But I don't have any control on the function I am calling. I want Matlab to stop executing the function and return if it takes more than a certain time. Is there any way I can do it from the main function? In the given code, I want the code to skip and continue if 'analyze.run(i);' takes more than 10 minutes.
Thank you
for i=1:10
tic
analyze.run(i);
toc
end
  3 个评论
samudra s
samudra s 2019-5-13
I solved this issue in a simple yet stupid way. I opened another Matlab and in that I ran a code which would check the output file of the other Matlab every five minutes. If there is no update, then it means the first MATLAB failed and then the second one will send me an email. (when my code fails the entire Matlab gets stuck)

请先登录,再进行评论。

回答(1 个)

Walter Roberson
Walter Roberson 2016-11-19
编辑:Walter Roberson 2016-11-19
The only way I know of to control this is to use the Parallel Computing Toolbox and generate a "future" for the execution, using parfeval(). futures can be canceled if they take too long. That is pretty much handled by killing the process executing the future.
You might possibly be able to do something similar with Parallel Computing Toolbox and batch().
There is no method otherwise to place time restrictions without the cooperation of the function being restricted.

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by