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...