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

时间:2011-05-06 05:01:35

标签: matlab signal-handling

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

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

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

1 个答案:

答案 0 :(得分:6)

MATLAB已将^C解释为中断。您可以使用onCleanup个对象来确保正确保留您的程序状态。即类似的东西:

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

运行上述内容并在您感到无聊时点击^C。显然,您可以将任何函数句柄挂钩到onCleanup对象中。另请参阅reference page for onCleanup