2011-04-28 76 views
3

通常在MATLAB中我打開'自動'調試dbstop if error。當發生錯誤時,該函數進入調試模式,並且我能夠在命令窗口中查詢變量並查看到底發生了什麼。很有用。調試時在命令窗口中保持焦點MATLAB

但是,如果發生這種情況,焦點切換到編輯器。對我來說,這似乎是反直覺的;我們處於調試模式,所以我想知道發生了什麼,而不是看代碼(我可以在相鄰窗口中看到)。我總是立即回到命令窗口。

所以我的第一個問題是:在這裏訪問編輯器有什麼意義嗎?我可以用做什麼,當我的腳本崩潰時,在編輯器中?

第二:如果我想,我可以改變MATLAB的默認行爲,以保持焦點在命令窗口?

回答

3

你的第二個問題:

如果你使用MATLAB的桌面環境,在「調試」菜單中的「調試時,打開文件」只需取消。

如果您在沒有圖形桌面的情況下使用MATLAB,您可以通過修改matlab.prf文件來更改此首選項。該文件存儲從GUI設置的首選項。上述菜單選項與以下所述的手動過程相同。

注意:編輯此文件完全不受支持。這樣做自擔風險。

  1. 打開從MATLAB命令提示符的文件,

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

    或者使用prefdir命令在MATLAB中找到目錄,然後打開你喜歡的任何編輯器中的文件。

  2. 搜索這樣一行

    EditorGraphicalDebugging=Btrue

  3. 更改它讀取

    EditorGraphicalDebugging=Bfalse

    如果該行不存在,將其添加到文件中。

  4. 重新啓動MATLAB。

+0

爲了簡化一點,可以用Matlab的內部Java方法以編程方式設置此首:'com.mathworks.services.Prefs.setBooleanPref(「EditorGraphicalDebugging」,虛假)' – 2013-09-16 17:35:02

2

我只能回答你的第一個問題。

東西,你可以在編輯器中做的:

  • 鼠標懸停時一個變量,它會彈出一個「快速查看」窗口。
  • 任何行動,你可以做的時候不是在調試模式,治療功能的腳本 - 運行線(高亮+ F9),運行的代碼塊等
3

您可以使用調用堆棧看看你是如何來到特定的錯誤位置。當然,您可以在命令窗口中使用dbupdbdown進行此操作,但在編輯器中更容易。

另外,在導致崩潰的代碼的上下文中查看變量(以及它們的值,使用鼠標懸停)對於理解錯誤的根本原因要比僅查看靜態值要好得多。