- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 程序调试和编程技巧 在编写MATLAB程序时,难免会出现错误,这时就需要对程序进行调试。MATLAB中,M文件的调试主要有两种方法:直接调试法和工具调试法。 编写的程序在能够完成特定的功能的情况下,还要对程序的性能进行分析,例如运算速度和效率等。在MATLAB中,采用Profile工具对程序的性能进行分析。在本章的最后,介绍了一些常用的编程技巧。 12.1 M文件调试 对于编程者来说,程序出现错误在所难免,尤其是在编写多人参与的大型程序时,掌握常用的程序调试方法非常重要。下面首先介绍出错信息,然后介绍常用的直接调试法和工具调试法等。 12.1.1 出错信息 程序调试是一个很基础也很重要的问题。没有人能一遍写出完全正确没有错误的程序。错误的程序大致分为以下三类: 拼写错误:比如应该是sum( ),写成了smu( )。拼写错误非常容易发现,在程序运行时,系统会提示错误。 语法错误:比如6/0,输出结果变为无穷大Inf。程序在运行时不一定会报错,但是输出结果不正常。 逻辑错误:这样的错误非常隐蔽,通常是对程序的算法考虑不周全。程序可以正常执行,但是输出结果不符合预期值。 12.1.2 直接调试法 利用MATLAB编写脚本文件或函数,非常灵活,得到的程序也非常的简洁,比较容易阅读和理解。对于不是很复杂的程序,可以使用直接调试法进行程序的调试。 (1)如果程序出错或给出警告信息,仔细分析出错或警告信息,会得到出错的原因。 (2)在程序中,利用函数disp( )将函数M文件的中间结果显示出来。 (3)在单独调试一个函数M文件时,可以将该函数M文件修改为脚本M文件进行调试。 (4)将程序的某些行通过注释进行屏蔽,在程序行的前面输入注释符%。 (5)在程序中需要调试的地方添加keyboard函数。 12.1.3 工具调试法 在MATLAB中,有强大的程序调试工具,可以在命令行窗口采用调试命令进行调试,也可以采用Debugger工具在图形窗口中进行程序的调试。下面分别进行介绍。 1.命令行为主的调试 在命令行 窗口中输入:help debug可以查看调试命令。 dbstop设置断点。dbclear清除断点。dbcont从断点处恢复执行。dbstack调用堆栈。dbstatus列出所有断点。dbstep执行一行或多行程序。dbtype查看程序的代码。 2.图形化程序调试 12.1.4 错误处理 在程序运行过程中,如果遇到警告或错误,需要进行处理。在MATLAB中,可以采用try…catch语句来捕获错误。可以利用函数error( )发出错误信息,利用函数warning( )发出警告信息。 1.使用try…catch语句 2.使用函数error( ) 3.使用函数warning( ) 12.2 M文件性能分析 在MATLAB中,通过程序的调试,可以改正程序中的语法错误和逻辑错误等。程序调试结束以后,用户编写的MATLAB程序可以正常运行了,但可能并不是最优的,运行效率也不是最好的。这就需要对MATLAB程序的性能进行分析,并进行优化。 MATLAB提供的M文件分析工具包括:Code Analyzer工具和Profiler工具,它们都有图形操作界面,使用起来非常的方便,下面进行详细的介绍。 12.2.1 Code Analyzer工具 在MATLAB中,可以利用Code Analyzer工具来分析程序中的错误和性能等。在以前的MATLAB版本中叫M-lint,基本功能类似,只是名称不一样。 用户首先采用M文件编辑器打开要分析的M文件,然后选择M文件编辑器中Tool菜单下的Code Analyzer选项,如图12.8所示。其中菜单MATLAB Compiler Message Default Setting将Code Analyzer工具设置为默认值,单击菜单Show Code Analyzer Report,会在浏览器窗口中显示分析报告。 12.2.2 Profiler分析工具 在MATLAB中,采用Profiler工具对MATLAB代码进行分析。用户可以在MATLAB的主界面中单击菜单Desktop| Profiler,显示Profiler工具。在Run this code后面输入程序文件名或程序语句后,通过单击按钮Start Profiling进行程序的性能分析。 12.3 编程技巧 由于 MATLAB 语言是一种解释性语言,有时 MATLAB 程序的执行速度不是很理想。下面给出了一些编程的技巧,例如:尽量采用向量运算来代替循环,对于大型的矩阵预先给出维数等。 12.3.1 程序执行时间 在MATLAB中,可以对程序进行计时,从而获得程序的执行时间。在本书第2章的2.3.4节,给出了3种计时方法,分别
原创力文档


文档评论(0)