我有一个Matlab脚本,它应该能够独立执行(即,我可能需要执行一个单元以执行另一个单元,但直到我清除工作区,我应该能够执行第二个单元格而不执行第一个单元格)。这些单元中的代码有时会失败(当然),如果他们这样做,我想运行一个特定的命令。由于代码跨越几个独立的单元格,因此我不能使用try/catch块来实现这一点 - 除非我在每个单元格中放置一个try/catch块,而我并不想这样做。每个单元格都很短(主要是带有函数调用的几行代码),因此在每个单元格中引入try/catch块可能会使脚本长度加倍。在没有try/catch的情况下在错误时运行指定的命令
具体而言,我想打开在第一小区,其自动地(diary off
)关闭一个日志文件(diary filename.log
)后发生的错误(和记录)从任何细胞。这个设置应该至少在日志文件再次关闭之前,并且应该以编程方式设置(我想将它设置在同一个单元格中,我打开日志文件)。
我该如何做到这一点?
为什么你的代码失败?假设您可以设置这些边界,您可以替换支持您的代码的语句吗? –
是否有充分的理由为你的代码使用这种蜂窝体系结构?也许我对细胞模式并不了解,但我总是将其视为帮助原型命令的工具。一旦你有一个你喜欢的工作,你应该把它封装在一个函数中。 – Miebster
我使用蜂窝结构能够多次重复部分代码,而只需运行一次其他(慢)任务。在这个特定的情况下,我首先建立一个3D几何(慢),然后模拟CT扫描(快得多),同时改变一些参数。我想记录每次运行,不管我的代码是如何完成的,但是我希望每次运行都在不同的日志文件中。我在模拟开始时打开日志,以时间戳命名,但如果代码失败,我想关闭日志以解决问题,而不是在一个文件中运行gzillion失败。 –