【发布时间】:2013-07-09 07:30:19
【问题描述】:
我的代码在运行期间有很多变量,它在某行崩溃。现在,显然我想使用调试器在崩溃时明确显示变量值。但是,我可以在该行上定义一个断点,但是当我单击“继续”足够多次以使代码崩溃(该行在循环内,并且在循环的最后一次运行时崩溃)时,matlab 会清除所有的工作区运行时变量。
您知道如何维护变量以查看导致崩溃的值吗?非常感谢。
【问题讨论】:
我的代码在运行期间有很多变量,它在某行崩溃。现在,显然我想使用调试器在崩溃时明确显示变量值。但是,我可以在该行上定义一个断点,但是当我单击“继续”足够多次以使代码崩溃(该行在循环内,并且在循环的最后一次运行时崩溃)时,matlab 会清除所有的工作区运行时变量。
您知道如何维护变量以查看导致崩溃的值吗?非常感谢。
【问题讨论】:
如果您使用dbstop if error,则 matlab 将在导致错误的行处停止,在实际导致崩溃之前,将所有已定义的变量保留在当前(函数的)工作区中。
另一种方法是使用try-catch ME 进行错误处理,但在您的情况下这似乎有点过头了。
【讨论】:
dbstop if error 确实似乎是要走的路。请注意,如果需要进行广泛的分析,您可以使用 save 命令从调试模式存储变量。
如果崩溃发生在最后一个例程中,那么请少运行一次循环,并且您拥有所有变量,因此您也可以根据需要保存它们。 现在您可以在循环内逐行运行。
【讨论】: