Matlab调试的方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab调试的⽅法
分享⼀些Matlab调试技巧:
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)调⽤堆栈:
dbstack:
1.)dbstack(N)
2.)dbstack('-completenames')
(5)列出所有断点:
dbstatus
s=dbstatus:返回值为M×1结构体
其中字段:
name-函数名;
line-断点⾏向量;
expression_r-与line中相对应的断点条件表达字符串;
cond-条件字符串,如error,caughterror,warning,或naninf;
identifier-当条件字符串是error,caught error,warning,或naninf时,改字段是Matlab的信息指⽰字符串;
dbstatusmfile:列车制定M⽂件中所有断点设置,mfile必须为M⽂件函数或有效路径;(6)执⾏⼀⾏或多⾏语句:dbstep:执⾏下⼀个可执⾏语句;
dbstep nlines:执⾏下nlines⾏可执⾏语句;
dbstep in:执⾏下⼀⾏可执⾏语句,如有⼦函数,进⼊;
dbstep out:执⾏函数剩余部分,离开函数时停⽌;
注:这四种都返回调试模式,如遇断点,中⽌;
(7)列出⽂件内容:
dbtype mfile:列出mfile⽂件的内容,并在每⾏语句前加上标号以⽅便使⽤者设定断点;
dbtype mfile start:end:列出mfile⽂件中指定⾏号范围的部分
注:在UNIX和VMS调试模式下,并不现实Matlab的调试器,此时必须使⽤dbtype 来显⽰源程序代码;
(8)切换⼯作空间:
dbdown:遇到断点时,将当前⼯作空间切换到被调⽤的M⽂件的空间;
dbup:将当前⼯作空间切换到调⽤的M⽂件的空间;
(9)退出调试模式:
dbquit;。