matlab中断抛出异常

时间:2011-05-25 14:45:39

标签: matlab exception-handling

我想捕获对 control - c 的任何调用作为异常,以便我以较少破坏性的方式处理中断。我在网上找到的唯一一次讨论是2009年的this thread on the matlab exchange。我想知道是否有人知道可能在更新版本的matlab中出现的新解决方案。谢谢!

2 个答案:

答案 0 :(得分:8)

当您按 Ctrl C 时,MATLAB会将其解释为中断。我认为没有办法让你接听电话并做一些事情,例如跳到不同的循环。

但是,您可以使用函数onCleanup执行关闭打开文件句柄,删除临时文件,写日志,显示消息,甚至在MATLAB中断之前保存工作区等操作。但是,需要从函数内部调用它。

这是一个简单的说明性示例

function test
currentDir=pwd;
cd 'path to some folder'
c=onCleanup(@()cd(currentDir));

for i=1:...
    %#some computations here
end 

因此,当此函数运行并且您中断时,它会将您带回到运行它时所在的文件夹。这很好,所以你不会陷入一些随机文件夹,你需要每次都手动输入。

答案 1 :(得分:1)

onCleanup方法一样,请注意您可以通过派生handle并实现delete方法来编写自己的类似对象。该文档是here