MATLAB程式设计方案入门篇程式除错.pptVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB 程式設計入門篇 程式除錯 張智星 jang@.tw .tw/~jang 清大資工系 多媒體檢索實驗室 17-1 結構陣列的建立 MATLAB 的除錯器(debugger)功能包含: 查詢每一個函數的工作空間(Workspace) 顯示函數呼叫過程中的的堆疊(Function Call Stack) 一列一列地執行 M 檔案(Step-by-step Execution) 17-2 一般除錯技巧(1) 一般偵測邏輯錯誤的方法: 去除運算式最尾端的分號,運算式執行的結果會印在 MATLAB 指令視窗中。 在程式中加入 keyboard 指令,可使程式執行至此處即暫停,並顯示“k ”的提示號(k 代表 keyboard),以便查看或改變工作空間的任何變數,若要繼續執行程式,可在 MATLAB 指令視窗下輸入“return”並按下 Enter 鍵。 17-2 一般除錯技巧(2) 使用判斷式及 fprintf 指令印出變數的值。 在除錯一個單獨函數時,可在其第一列的函數宣告列加上 %,並定義輸入引數的值,此時我們就可以直接以腳本(Scripts)的方式來執行此 M 檔案,並保留所有變數於 MATLAB 工作空間之中。 使用 MATLAB 除錯程式。 17-3以命令列為主的除錯程式(1) 17-3以命令列為主的除錯程式(2) dbstop 的一般格式及相關說明 可以利用dbstop來指定程式碼的中斷點 離開除錯模式後的動作 進入除錯模式後,可檢查任何變數的值,也可以執行其他任何指令或手稿(script)。 檢查完畢後,可能採取的動作有: dbstep 的格式及說明 dbstep可以一次執行一列或多列程式碼,或是進入或跳出一個指令的內部程式碼 。 dbclear及dbstatus 的用法 dbclear 用於取消中斷點,用法與dbstop的格式同,只需將dbstop改成dbclear。若要清除所有的中斷點,可用 dbclear all。 dbstatus 可列出所有的中斷點。 實例:計算一向量的倒數和 範例: recipsum.m 此函數包含一錯誤,執行時即會出現: 使用dbstop及dbstatus 讓MATLAB 停留在產生錯誤訊息的函數: dbstop if error 確認所建的中斷條件:    dbstatus                Stop if error. 再呼叫原函數,會停在錯誤發生的程式碼: 使用dbstack及dbtype 此時可在指令視窗使用 dbstack 來顯示 MATLAB 所在的函數: 亦可用 dbtype 來顯示程式碼: 使用dbquit、dbup及dbdown 在除錯器中將x改成input,則正確答案為: 當程式暫停執行於一個函數時,可以使用 dbup 及 dbdown 來跳到不同的工作空間,以便檢視各變數。 設立中斷條件 上述範例修正後的檔案為recipsum1.m,執行時還是可能會有問題 = Divide by zero. 另設一個中斷條件來檢查錯誤所在,再呼叫函數: 除錯後的最終結果 假設在輸入為 0 時,其倒數不計,則程式碼可修正如下,recipsum2.m: 正確答案為: 17-4以圖形介面進行程式除錯 進行除錯,可由指令列下達 edit 指令,如: edit recipsum1 可開啟 MATLAB 除錯器(也是編輯器) 除錯指令與圖示 設立中斷點(1) 欲設立中斷點於 reciproc 函數的第一列,可利用滑鼠將游標置於該列並點取 圖示。(紅點,代表中斷點 ) 設立中斷點(2) 若執行此函數,即可停於該中斷點: recipsum1([1 2 3]) (綠色箭號顯示現在所在的位置 ) 檢視變數或運算式 中斷後可在指令列檢視各個變數的值,或選取工具列上的 stack 下接式選單,以跳至不同的工作空間。 檢視變數或運算式有三 : 在指令列輸入變數或運算式。 選取變數或運算式後,利用滑鼠右鍵點取,並選擇“Evaluate Selection”。 選取變數或運算式後,由工具列的 View 下接式選單選取“Evaluate Selection”。 逐步執行 若按下 圖示(或在指令列輸入 dbstep),則綠色箭號變成向下,代表即將離開此次函數。 再按 (或於指令列輸入 dbstep)數次,即可完成整個函數的逐步執行。 不同版本的

您可能关注的文档

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档