matlab中断抛出异常

eyk*_*nal 6 matlab exception-handling

我想抓住任何调用control- c作为一个例外,以便我以较少破坏性的方式处理中断.我在网上找到的唯一讨论是2009 年matlab交换中的这个帖子.我想知道是否有人知道可能在更新版本的matlab中出现的新解决方案.谢谢!

abc*_*bcd 8

按下时CtrlC,MATLAB将其解释为中断.我认为你没有办法接听电话并做一些事情,例如跳到不同的循环.

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

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

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

for i=1:...
    %#some computations here
end 
Run Code Online (Sandbox Code Playgroud)

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