matlab除錯工具

2021-06-16 18:00:13 字數 1518 閱讀 9061

在開發函式m檔案過程中,不可避免地出現錯誤,即故障。matlab提供了很多函式和方法,幫助除錯函式。

在matlab表示式中,有兩類錯誤:語法錯誤和執行錯誤。當matlab計算乙個表示式的值或乙個函式被編譯到記憶體時會發現語法錯誤。一旦發現語法錯誤,matlab立即標誌這些錯誤,並提供有關所遇到的錯誤型別,以及發生錯誤處m檔案的行數。給定這些反饋資訊,就很容易糾正這些錯誤。

而另一方面,即使matlab標誌了執行錯誤,但找出錯誤一般比較困難。當發現執行錯誤時,matlab把控制權返回給命令視窗和matlab的工作空間。失去了對發生錯誤的函式空間的訪問權,因此,使用者不能詢問函式工作空間中的內容排除問題。

根據作者的經驗,當一些操作結果導致空矩陣或nans時,最容易發生執行錯誤。所有有關nans的操作都返回nans值。因此,如果有可能出現nans結果,則當出現nans時,最好運用邏輯函式isnan來執行一些預設操作。因為空矩陣為零維,所以對空矩陣定址常常導致錯誤。函式find表示了可產生空矩陣結果的一般情況。如果函式find的空矩陣輸出用於索引其它陣列,所返回的值也將是空的。這樣,空矩陣具有傳播性質。例如:

>>x=pi*(1 : 4)    %  example data

>>i=find(x>20)  %  use find function

>>y=2*x(i)     %  propagate the empty matrix

很清楚,當希望y具有有限維數和值時,可能發生執行錯誤。當執行乙個操作或使用可返回空結果的函式時,邏輯函式isempty有利於為空矩陣定義乙個預設值,這樣避免執行錯誤。

有幾種除錯函式m檔案的方法。對於簡單的問題,可直接使用下列的方法組合:

1、去掉檔案中所選擇的行的分號,以便中間結果顯示在命令視窗中。

2、在檔案中加入顯示感興趣的變數的語句

3、把keyboard命令放在檔案中所選擇的地方,給鍵盤暫時控制權。這樣,可以查詢函式空間並按需要改變其值。

4、在m檔案開始,在function語句前加上%,將函式m檔案改變為指令碼m檔案。當matlab執行該指令碼m檔案時,該空間就是matlab工作空間。這樣,當發生錯誤時可以詢問。

當m檔案大,遞迴呼叫或者多次巢狀(即呼叫其它m檔案函式,被呼叫m檔案函式又呼叫其它m檔案函式,等等)時,用matlab的除錯函式會更方便。與上述所列方法相反,這些除錯函式不要求將有問題的m檔案進行編輯。表16.1所給出的這些函式類似於其它高階程式語言中所提供的函式。有關進一步的資訊,以及它們的使用例項,參閱《matlab使用者指南》。

matlab除錯函式

dbclear:

取消斷點

dbcont:

在斷點後恢復執行

dbdown:

工作空間下移

dbquit:

退出除錯模式

dbstack:

列出誰呼叫誰

dbstatus:

列出所用的斷點

dbstep:

執行一行或多行

dbstop:

設定斷點

dbtype:

列出帶行號的m檔案

dbup:

工作空間上移

Matlab 除錯工具 dbstop 的使用

在檔名為mfile的m檔案第乙個可執行語句前設斷點 dbstop in mfile 在mfile的第linenu行設斷點 dbstop in mfile at linenu 當程式執行到子函式subfun時,暫時中止執行,並在子函式的第乙個可執行語句前設斷點 dbstop in mfile at s...

除錯工具 之Python除錯工具pycharm

1 pycharm的安裝 pycharm是一款非常好用的python ide,提供專業版和社群版,就像eclipse和myeclipse一樣,專業版是收費的,而社群版是免費的但功能就沒有專業版的功能強大。1.2 安裝 這裡就不必細說,直接next就ok ps 安裝完成後一定要執行 1.3 破解 採用...

gflags除錯工具

gflags windows除錯工具。使用它幫助我解決了瞎調了一整天的記憶體問題。由於使用了已經delete的指標,vs提示位置又錯誤的情況下,瞎調了一通。怎麼想那塊也不會有問題,可是抱著對vs的信任把錯就歸咎於自己吧!偶然的機會,搜到了gflags,抱著試一試的心態,使用該工具 1.安裝 debu...