我已经查看了文档等,但我没有看到任何明显的东西。我想要一个信号处理程序,可以拦截^C
,^\
或其他可用于中断长时间运行的脚本(每个离散计算通常小于 1 秒)并允许它优雅退出并保存当前状态的按键。
Matlab 确实有 COM 的事件处理程序,但它是仅限 Windows 的,而且我在 *nix 环境中。
如果答案是“运气不好”,我对此很满意……我只是还没有看到任何说我是 SOL 的东西。
我已经查看了文档等,但我没有看到任何明显的东西。我想要一个信号处理程序,可以拦截^C
,^\
或其他可用于中断长时间运行的脚本(每个离散计算通常小于 1 秒)并允许它优雅退出并保存当前状态的按键。
Matlab 确实有 COM 的事件处理程序,但它是仅限 Windows 的,而且我在 *nix 环境中。
如果答案是“运气不好”,我对此很满意……我只是还没有看到任何说我是 SOL 的东西。
MATLAB 已经解释^C
为中断。您可以使用onCleanup
对象来确保正确保留程序状态。即类似的东西:
function testFcn
x = onCleanup( @() disp('perform cleanup here...') );
for ii=1:1000, disp(ii), pause(1), end
运行上述并^C
在您感到无聊时打。显然,您可以将任何函数句柄挂接到您的onCleanup
对象中。另请参阅onCleanup 的参考页。