How can I stop a function from main function after a certain time?
显示 更早的评论
% main function
callpause(200)
I have two programs. The first one (main) calls the function 'callpause'. My aim is to terminate 'callpause' from the main if it exceeds 10 seconds. (It will.) How can I do that with making changes only in the main function?
function callpause(a)
for i=1:a
pause(1)
i
end
end
1 个评论
KSSV
2017-1-31
I don't think it is possible to achieve in main function...but can be made changes to function callpause and exit the function.
回答(1 个)
Jan
2017-1-31
0 个投票
You can use this tool to emulate a Ctrl-C after some time: FEX: Timeout. This would stop the complete program, but you could restart it using a timer also.
This kind of meta-programming is rather confusing and prone to errors: programs, which terminate and restart themselves. A structure program would be nicer and much cleaner: If the called function contains a loop, you can insert a check for the elapsed time, such that the subfunction can terminate itself and cleanup open files, persistent memory or whatever cleanly.
类别
在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!