matlab除錯技巧

2022-09-11 03:57:12 字數 1081 閱讀 1184

matlab的除錯總體分為,直接除錯和間接除錯。

1.直接除錯:

(1)去掉句末的分號;

(2)單獨除錯乙個函式:將第一行的函式宣告注釋掉,並定義輸入量,以指令碼方式執行 m 檔案;

(3)適當地方新增輸出變數值的語句;

(4)新增keyboard命令;

2.工具除錯:

1.)以命令列為主的除錯:

(1)設定斷點:

dbstop in mfile:在檔名為mfile的m檔案第乙個可執行語句前設斷點;

dbstop in mfile at lineno:在mfile的第lineno行設斷點;

dbstop in mfile at subfun:當程式執行到子程式subfun時,暫時中止執行,並設斷點;

dbstop if error:遇到錯誤時,終止m檔案執行,並停在錯誤行(不包括try…catch語句中檢測到的的錯誤,不能在錯誤後重新開始執行);

dbstop if all error:遇到任何型別錯誤均停止(包括try…catch語句中檢測到的的錯誤);

dbstop if warning:程式可恢復執行;

dbstop if caught error:當try…catch檢測到執行時間錯誤是,停止m檔案執行,可恢復執行;

dbstop if naninf 或 dbstop if infnan

(2)斷點清除:

dbclear all:清除所有m檔案中的所有斷點;

dbclear all in mfile:清除檔名為mfile的檔案中的所有斷點;

dbclear in mfile:清除檔名為mfile中第乙個可執行語句前的斷點;

dbclear in mfile at lineno:

dbclear in mfile at subfun:

dbclear if error/warning/naninf/infnan:

(3)恢復執行:

dbcount:從斷點處恢復程式的執行,直到下乙個斷點或錯誤後返回matlab基本工作空間;

(4)呼叫堆疊:

dbst

Matlab除錯技巧(實戰篇)(一)

例如我的程式裡是講機械人智慧型體運動的過程,重要的是運動的模式是否正確,當我發現有機械人的運動不對的時候,我會根據其位置 座標 對應找到此時工作區里的robot的mat資料,發現此時機械人任務負載為空,是有問題的,從而要回頭去找給機械人賦予任務的程式的問題。注意下面兩張圖的標註區域代表的機械人不一樣...

matlab 程式除錯

在程式除錯時,程式執行中變數的值是乙個重要的線索。因此,檢視變數值是程式除錯的重要線索,由於在函式呼叫時只返回最後的輸出引數,而不返回中間變數,因此,可以選擇下面的方法檢視程式執行中的變數值。1 通過分析,將可能出錯的語句後面的分號刪除,將結果顯示在命令視窗中,與預期值進行比較。2 利用函式disp...

Matlab常用技巧

m檔案如果是函式,儲存的檔名最好與函式名一致,這點都很清楚。不過容易疏忽的是,m檔名的命名盡量不要是簡單的英文單詞,最好是由大小寫英文 數字 下劃線等組成。原因是簡單的單詞命名容易與matlab內部函式名同名,結果會出現一些莫名其妙的錯誤。例如,寫個m檔案,命名為spy,執行時就彈出乙個怪怪的fig...