欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    MATLAB程式设计入门篇程式除错.ppt

    • 资源ID:5575707       资源大小:206.50KB        全文页数:23页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MATLAB程式设计入门篇程式除错.ppt

    MATLAB 程式設計入門篇程式除錯,張智星(Roger Jang)http:/mirlab.org/jang清大資工系 多媒體檢索實驗室,17-1 簡介,MATLAB 的除錯器(Debugger)功能包含:查詢每一個函數的工作空間(Workspace)顯示函數呼叫過程中的的堆疊(Function Call Stack)一列一列地執行 M 檔案(Step-by-step Execution)一般程式語言的錯誤分類語法錯誤邏輯錯誤,17-2 一般除錯技巧(1/2),一般偵測邏輯錯誤的方法:去除運算式最尾端的分號,運算式執行的結果會印在 MATLAB 指令視窗中。在程式中加入 keyboard 指令,可使程式執行至此處即暫停,並顯示“k”的提示號(k 代表 keyboard),以便查看或改變工作空間的任何變數,若要繼續執行程式,可在 MATLAB 指令視窗下輸入“return”並按下 Enter 鍵。,17-2 一般除錯技巧(2/2),使用判斷式及 fprintf 指令印出變數的值。在除錯一個單獨函數時,可在其第一列的函數宣告列加上%,並定義輸入引數的值,此時我們就可以直接以腳本(Scripts)的方式來執行此 M 檔案,並保留所有變數於 MATLAB 工作空間之中。使用 MATLAB 的除錯器。,17-3以命令列為主的除錯程式(1/2),17-3以命令列為主的除錯程式(2/2),dbstop 的一般格式及相關說明,可以利用dbstop來指定程式碼的中斷點,離開除錯模式後的動作,進入除錯模式後,可檢查任何變數的值,也可以執行其他任何指令或手稿(script)。檢查完畢後,可能採取的動作有:,dbstep 的格式及說明,dbstep可以一次執行一列或多列程式碼,或是進入或跳出一個指令的內部程式碼。,dbclear及dbstatus 的用法,dbclear 用於取消中斷點,用法與dbstop的格式同,只需將dbstop改成dbclear。若要清除所有的中斷點,可用 dbclear all。dbstatus 可列出所有的中斷點。,實例:計算一向量的倒數和,範例:recipsum.m此函數包含一錯誤,執行時即會出現:,type recipsumfunction out=recipsum(x)recip=reciproc(x);out=sum(recip);function output=reciproc(input)output=1./x;,recipsum(1 2 3)?Input argument x is undefined.Error in=D:matlabBookMATLAB程式設計:基本篇17-程式除錯recipsum.mOn line 3=recip=reciproc(x);,使用dbstop及dbstatus,讓MATLAB 停留在產生錯誤訊息的函數:dbstop if error確認所建的中斷條件:dbstatus Stop if error.再呼叫原函數,會停在錯誤發生的程式碼:,使用dbstack及dbtype,此時可在指令視窗使用 dbstack 來顯示 MATLAB 所在的函數:亦可用 dbtype 來顯示程式碼:,k dbstack In recipsumreciproc at 7 In recipsum at 3,k dbtype 1 function out=recipsum(x)2 3 recip=reciproc(x);4 out=sum(recip);5 6 function output=reciproc(input)7 output=1./x;,使用dbquit、dbup及dbdown,在除錯器中將x改成input,則正確答案為:當程式暫停執行於一個函數時,可以使用 dbup 及 dbdown 來跳到不同的工作空間,以便檢視各變數。,k dbquit%離開除錯模式 recipsum1(1 2 3)ans=1.8333,設立中斷條件,上述範例修正後的檔案為recipsum1.m,執行時還是可能會有問題=Divide by zero.另設一個中斷條件來檢查錯誤所在,再呼叫函數:,recipsum1(2 0 2)ans=Inf,dbstop if naninf recipsum1(2 0 2)NaN/Inf breakpoint hit for recipsum1 on line 4.4 out=sum(recip);K,除錯後的最終結果,假設在輸入為 0 時,其倒數不計,則程式碼可修正如下,recipsum2.m:正確答案為:,k dbquit%離開除錯模式 type recipsum2 function out=recipsum(x)recip=reciproc(x);out=sum(recip);function output=reciproc(input)input(find(input=0)=;%Eliminate 0 elements output=1./input;,recipsum2(2 0 2)ans=1,17-4以圖形介面進行程式除錯,進行除錯,可由指令列下達 edit 或 open 指令,例如:edit recipsum1 可開啟 MATLAB 除錯器(也是編輯器),除錯指令與圖示,設立中斷點(1),欲設立中斷點於 reciproc 函數的第一列,可利用滑鼠將游標置於該列並點取 圖示。(紅點,代表中斷點),設立中斷點(2),若執行此函數,即可停於該中斷點:recipsum1(1 2 3)(綠色箭號顯示現在所在的位置),檢視變數或運算式,中斷後可在指令列檢視各個變數的值,或選取工具列上的 stack 下接式選單,以跳至不同的工作空間。檢視變數或運算式有三:將游標移到變數附近在指令列輸入變數或運算式。選取變數或運算式後,利用滑鼠右鍵點取,並選擇“Evaluate Selection”。,逐步執行,若按下 圖示(或在指令列輸入 dbstep),則綠色箭號變成向下,代表即將離開此次函數。再按(或於指令列輸入 dbstep)數次,即可完成整個函數的逐步執行。,不同版本的MATLAB圖示對應關係,

    注意事项

    本文(MATLAB程式设计入门篇程式除错.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开