Matlab:是否可以创建信号处理程序(.m脚本)

Bri*_*erg 2 matlab signal-handling

我查看了文档等,但我没有看到任何明显的东西.我想有可以拦截一个信号处理程序^C,^\或可能被用于中断长时间运行的脚本某些其他按键(每一个离散的计算典型地<1秒),并允许其正常退出并保存当前的状态.

Matlab确实有COM的事件处理程序,但它只是windows,我在*nix环境中.

如果答案是'艰难的运气',那我很酷......我只是没有看到任何说我已经SOL的东西了.

Edr*_*ric 6

MATLAB已将其解释^C为中断.您可以使用onCleanup对象来确保正确保留您的程序状态.就像这样:

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

运行上面的内容,^C当你感到无聊时点击.显然,您可以将任何函数句柄挂钩到您的onCleanup对象中.另请参阅onCleanup参考页面.