![]() |
在错误中运行指定的命令,而无需在Matlab中进行try / catch
我有一个Matlab脚本,其中包含几个应该都可以独立执行的单元(即,我可能需要执行一个单元才能执行另一个单元,但是在清除工作空间之前,我应该能够再次执行第二个单元而无需执行第一个)。这些单元中的代码有时会失败(当然),如果确实失败了,我想运行一个特定的命令。
由于代码跨越多个独立的单元格,因此我无法使用try / catch块来完成此操作-除非我在每个单元格中都放置了一个try / catch块,否则我不会这样做。每个单元格都非常短(大多数情况下都是带有函数调用的几行),因此在每个单元格中引入try / catch块可能会使脚本的长度加倍。 具体来说,我想在第一个单元格中打开一个日志文件( diary filename.log ),在任何单元格中发生错误并记录错误后,该diary filename.log自动关闭( diary off )。此设置至少应保持启用状态,直到再次关闭日志文件为止,并且应以编程方式进行设置(我想在与打开日志文件相同的单元格中进行设置)。 我该如何完成? [B]回答:[/B] 如果要将代码保留为脚本,最好的解决方案是在每个单元格周围放置一个try/catch块。 否则,您可以创建一个函数来包装您的脚本。函数语法允许您设置'dbstop if error',以使代码在发生错误时停止运行,从而使您可以检查变量并查明出错的原因。 function output = run(listOfCells,input) %#RUN evaluates the cells listed in listOfCells try diary filename.log if any(listOfCells==1) %# evaulate cell 1 end if any(listOfCells==2) %# evaluate cell 2 end ... catch %# close the diary in case of error diary off end %# try [url=https://stackoverflow.com/questions/5153798]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 04:57。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.