开发者

Matlab: Is it possible to create signal handlers (.m scripts)

开发者 https://www.devze.com 2023-03-03 13:54 出处:网络
I\'ve looked through the documentation, etc, but I\'m not seeing anything obvious.I\'d like to have a signal handler that can intercept ^C, ^\\, or some other 开发者_开发问答keypress that could be use

I've looked through the documentation, etc, but I'm not seeing anything obvious. I'd like to have a signal handler that can intercept ^C, ^\, or some other 开发者_开发问答keypress that could be used to interrupt a long-running script (each discrete computation is typically <1s) and allow it to exit gracefully and save current state.

Matlab does have event handlers for COM, but it's windows-only and I'm in a *nix environment.

If the answer is 'tough luck', I'm cool with that ... I'm just not seeing anything that says I'm SOL yet.


MATLAB already interprets ^C as an interrupt. You can use onCleanup objects to ensure that your program state is preserved correctly. I.e. something like:

function testFcn
x = onCleanup( @() disp('perform cleanup here...') );
for ii=1:1000, disp(ii), pause(1), end

Run the above and hit ^C when you get bored. Obviously, you can hook any function handle in to your onCleanup object. See also the reference page for onCleanup.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号