MATLAB 程式設計入門篇
程式除錯
張智星
jang@cs.nthu.edu.tw
http://www.cs.nthu.edu.tw/~jang
清大資工系 多媒體檢索實驗室
MATLAB 程式設計入門篇:程式除錯
17-1 結構陣列的建立
MATLAB 的除錯器(debugger)功能包含:
查詢每一個函數的工作空間(Workspace)
顯示函數呼叫過程中的的堆疊(Function Call
Stack)
一列一列地執行 M 檔案(Step-by-step
Execution)
MATLAB 程式設計入門篇:程式除錯
17-2 一般除錯技巧(1)
一般偵測邏輯錯誤的方法:
去除運算式最尾端的分號,運算式執行的結果會
印在 MATLAB 指令視窗中。
在程式中加入 keyboard 指令,可使程式執行至
此處即暫停,並顯示“k >”的提示號(k 代表
keyboard),以便查看或改變工作空間的任何變
數,若要繼續執行程式,可在 MATLAB 指令視窗
下輸入“return”並按下 Enter 鍵。
MATLAB 程式設計入門篇:程式除錯
17-2 一般除錯技巧(2)
使用判斷式及 fprintf 指令印出變數的值。
在除錯一個單獨函數時,可在其第一列的函數宣
告列加上 %,並定義輸入引數的值,此時我們就
可以直接以腳本(Scripts)的方式來執行此 M 檔
案,並保留所有變數於 MATLAB 工作空間之中。
使用 MATLAB 除錯程式。
MATLAB 程式設計入門篇:程式除錯
17-3以命令列為主的除錯程式(1)
語 法 功 能
dbstop at line# in
filename
設定中斷點(Break Points)
(line# 代表行號,filename 代表檔
案名稱)
dbclear at line# in
filename
清除中斷點
(line#代表行號,filename 代表檔案
名稱)
dbstop if warning
dbstop if error
dbstop if naninf
dbstop if infnan
若遇到「警告」(Warning)、「錯誤」(
Error)、或「非數值/無窮大」(NaN/Inf
),則暫停程式執行