在调试MATLAB时,请将焦点保持在命令窗口中

时间:2011-04-28 14:12:36

标签: debugging matlab ide

通常在MATLAB中,我使用dbstop if error启用“自动”调试。当发生错误时,该函数进入调试模式,我能够在命令窗口中查询变量并查看到底发生了什么。非常有用。

然而,当发生这种情况时,焦点会切换到编辑器。对我来说这似乎是违反直觉的;我们处于调试模式,所以我想知道发生了什么,而不是查看代码(我已经可以在相邻的窗口中看到)。我总是立即回到命令窗口。

所以我的第一个问题是:此时访问编辑器有什么意义吗?当我的脚本在编辑器中崩溃时,我可以做什么

其次:如果我愿意,我可以更改MATLAB的默认行为以将焦点保持在命令窗口中吗?

3 个答案:

答案 0 :(得分:3)

您可以使用调用堆栈来查看您是如何处理特定错误位置的。当然,您可以在命令窗口中使用dbupdbdown,但在编辑器中更容易。

此外,在导致崩溃的代码的上下文中查看变量(及其值,使用鼠标悬停)对于理解错误的根本原因要比查看静态值要好得多。

答案 1 :(得分:3)

关于你的第二个问题:

如果您使用MATLAB的桌面环境,只需在“调试”菜单中取消选择“调试时打开文件”。

如果您在没有图形桌面的情况下使用MATLAB,则可以通过修改matlab.prf文件来更改此首选项。此文件存储从GUI设置的首选项。上述菜单选项与下面描述的手动过程进行相同的更改。

注意:完全不支持编辑此文件。这样做需要您自担风险。

  1. 从MATLAB命令提示符

    打开文件

    >> edit([prefdir '/matlab.prf'])

    或者在MATLAB中使用prefdir命令查找目录,然后在您喜欢的任何编辑器中打开文件。

  2. 搜索一行

    EditorGraphicalDebugging=Btrue

  3. 将其更改为

    EditorGraphicalDebugging=Bfalse

    如果该行不存在,请将其添加到文件中。

  4. 重启MATLAB。

答案 2 :(得分:2)

我只能回答你的第一个问题。

你可以在编辑器中做的事情:

  • 鼠标悬停一个变量,弹出一个“快速查看”窗口。
  • 不在调试模式下可以执行的任何操作,将函数视为脚本 - 运行行(突出显示+ F9),运行代码块等。