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