我已经浏览了文档等,但我没有看到任何明显的东西。 我想要一个信号处理程序,可以拦截^C
、^
或其他一些可以用来中断长时间运行的脚本的按键(每个离散计算通常为 <1s)并允许它优雅地退出并保存当前状态。
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的参考页面。