Interrupt execution of script, function or MATLAB expression after specified period of time. Similar to timeout from GNU coreutils.
This function uses undocumented command window method to programatically send Ctrl+C after specified period of time.
There are other ways of sending Ctrl+C programmatically, including Java Robot or SIGINT on Linux, but they require changes to the script or function that we want to interrupt.
This submission serves as a PoC and demonstration. Adapt to your specific needs if necessary.
Run the 'longComputations' script for no more than 5 seconds:
Interrupt execution of infinite pause after 3 seconds:
Mikhail (2020). timeout (https://www.mathworks.com/matlabcentral/fileexchange/61263-timeout), MATLAB Central File Exchange. Retrieved .
@Abhinav Can you not see "Usage examples" section in the description?
Good idea. How can we use it to interrupt a function if it takes more than a certain amount of time to execute ?
How cruel to let Matlab simulate a press of Ctrl-C! It would be useful to stop and delete the timer, when the function ran successfully. I'd prefer providing a function handle and a list of inputs and outputs. But as you said, this piece of code is thought for a personal adaption. Therefore it does exactly, what is advertised in a smart and cruel way. :-)