2

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

Matlab 确实有 COM 的事件处理程序,但它是仅限 Windows 的,而且我在 *nix 环境中。

如果答案是“运气不好”,我对此很满意……我只是还没有看到任何说我是 SOL 的东西。

4

1 回答 1

6

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

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

运行上述并^C在您感到无聊时打。显然,您可以将任何函数句柄挂接到您的onCleanup对象中。另请参阅onCleanup 的参考页

于 2011-05-06T06:09:46.490 回答