2010-10-23 26 views
2

我正在调试需要大约10分钟才能运行的matlab脚本。在脚本结尾处,我对结果做了一些I/O和简单的计算,并且一直出现错误。有没有一种方法可以在脚本退出时从脚本中启动matlab - 数据仍在工作区中,因此我可以将所有代码注释到错误点,但我想知道如果有人知道更好的方式去做这件事而不重新运行整个脚本(超懒惰/低效率的方式)?(重新)从错误位置错误后启动Matlab

感谢,

科罗拉多

回答

4

是的,请使用dbstop。键入dbstop if error,然后运行脚本。一旦遇到错误,它将在那里创建一个断点,并且你在脚本的工作区---这意味着你可以调试错误,保存数据;任何你想要的!下面是从dbstop if error文档片断---还有其他的方法可以做到dbstop,所以做检查出来:

dbstop if error

停止执行,当您随后运行任何MATLAB程序文件生成一个运行时间错误,将MATLAB置于调试模式,暂停在产生错误的那一行。停止执行的错误不包括在try...catch块中检测到的运行时错误。未捕获的运行时错误后,您无法继续执行。使用dbquit从调试模式退出。

+1

然而,一旦你在错误抵达,您可以选择其余代码,并选择'从上下文菜单中选择评估Selection'。因此,您可以运行抛出错误的固定版本的行,以及运行其余代码(例如将所有结果保存到文件中) – Jonas 2010-10-23 10:35:31

+0

非常感谢,这为我节省了大量时间 – 2010-10-23 21:38:43

+0

@ user471949:没问题!这对我来说也是令人大开眼界。 – Jacob 2010-10-26 16:37:16

3

双百分号将使“电池模式”,它可以让你在步骤来运行代码有点块。听起来就像你在找什么。

+0

非常有用的提示一般“单位”的测试,感谢您的回答 – 2010-10-23 21:39:18