MATLAB下的程序调试

文章主要内容摘自《MATLAB 7.0从入门到精通》,求是科技编著。

程序错误一般分为两种:语法错误和逻辑错误。对于语法错误通常MATLAB会报错,并指出错误所在位置方便用户纠正。对于逻辑错误,往往需要用户对程序进行调试,发现错误原因和位置。MATLAB下的程序调试方法主要有直接调试法和工具调试法。
 
(1)直接调试法
 
1.通过分析后,将重点怀疑语句后的分号删掉,将结果显示出来,然后与预期值进行比较。
 
2.单步调试一个函数时,将第一行的函数声明注释掉,并定义输入变量的值,然后以脚本方式运行此M文件,这样就可保存下原来的中间变量了,可以对这些结果进行分析,找出错误。
 
3. 可以在适当的位置添加变量输出值的语句。
 
4.在程序的适当位置添加keyboard指令。当MATLAB执行到此处时将暂停,并显示k>>提示符,用户可以查看或改变各个工作空间中存放的变量,在提示符后键入return指令可以继续执行原文件。
 
(2)工具调试法
 
MATLAB的工具调试法主要包括以命令行为主的程序调试和以图形界面为主的程序调试。
 
2.1 以命令行为主的程序调试
 
1. 设置断点
 
dpstop in mfile
 
在文件名为mfile的M文件的第一个可执行语句前设置断点。
 
dbstop in mfile at lineno
 
在文件名为mfile的M文件的第lineno行设置断点。
 
dpstop in mile at subfun
 
当程序执行到子函数subfun时,暂时停止文件的执行并使MATLAB处于调试模式。
 
dbstop if error
 
M文件运行遇到错误时,终止M文件的运行并使得MATLAB处于调试状态。不包括try…catch语句中检测到的错误。
 
dbstop if all error
 
遇到任何类型的运行错误均停止运行并处于调试状态
 
dbstop if warning
 
运行M文件遇到警告时,终止M文件的运行并使得MATLAB处于调试状态,运行将在产生警告的行停止,程序可恢复运行
 
dbstop if caught error
 
当try…catch检测到运行时间错误时,停止M文件的执行,用户可以恢复程序的运行
 
dbstop if naninf或dbstop ifinfnan
 
当遇到无穷值或非数值时,终止M文件的执行
 
2.清除断点
 
dbclear all
 
dbclear all in mfile
 
dbclear in mfile
 
dbclear in mfile at lineno
 
dbclear in mfile at subfun
 
dbclear if error
 
dbclear if warning
 
dbclear if naninf
 
dbclear if infnan
 
3. 恢复执行
 
dbcout
 
从断点处恢复程序的执行

相关推荐