程序调试和编程技巧.ppt

上传人:小飞机 文档编号:6596255 上传时间:2023-11-16 格式:PPT 页数:14 大小:322.64KB
返回 下载 相关 举报
程序调试和编程技巧.ppt_第1页
第1页 / 共14页
程序调试和编程技巧.ppt_第2页
第2页 / 共14页
程序调试和编程技巧.ppt_第3页
第3页 / 共14页
程序调试和编程技巧.ppt_第4页
第4页 / 共14页
程序调试和编程技巧.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《程序调试和编程技巧.ppt》由会员分享,可在线阅读,更多相关《程序调试和编程技巧.ppt(14页珍藏版)》请在三一办公上搜索。

1、第12章 程序调试和编程技巧,在编写MATLAB程序时,难免会出现错误,这时就需要对程序进行调试。MATLAB中,M文件的调试主要有两种方法:直接调试法和工具调试法。编写的程序在能够完成特定的功能的情况下,还要对程序的性能进行分析,例如运算速度和效率等。在MATLAB中,采用Profile工具对程序的性能进行分析。在本章的最后,介绍了一些常用的编程技巧。,12.1 M文件调试,对于编程者来说,程序出现错误在所难免,尤其是在编写多人参与的大型程序时,掌握常用的程序调试方法非常重要。下面首先介绍出错信息,然后介绍常用的直接调试法和工具调试法等。,12.1.1 出错信息,程序调试是一个很基础也很重要

2、的问题。没有人能一遍写出完全正确没有错误的程序。错误的程序大致分为以下三类:拼写错误:比如应该是sum(),写成了smu()。拼写错误非常容易发现,在程序运行时,系统会提示错误。语法错误:比如6/0,输出结果变为无穷大Inf。程序在运行时不一定会报错,但是输出结果不正常。逻辑错误:这样的错误非常隐蔽,通常是对程序的算法考虑不周全。程序可以正常执行,但是输出结果不符合预期值。,12.1.2 直接调试法,利用MATLAB编写脚本文件或函数,非常灵活,得到的程序也非常的简洁,比较容易阅读和理解。对于不是很复杂的程序,可以使用直接调试法进行程序的调试。(1)如果程序出错或给出警告信息,仔细分析出错或警

3、告信息,会得到出错的原因。(2)在程序中,利用函数disp()将函数M文件的中间结果显示出来。(3)在单独调试一个函数M文件时,可以将该函数M文件修改为脚本M文件进行调试。(4)将程序的某些行通过注释进行屏蔽,在程序行的前面输入注释符%。(5)在程序中需要调试的地方添加keyboard函数。,12.1.3 工具调试法,在MATLAB中,有强大的程序调试工具,可以在命令行窗口采用调试命令进行调试,也可以采用Debugger工具在图形窗口中进行程序的调试。下面分别进行介绍。1命令行为主的调试在命令行 窗口中输入:help debug可以查看调试命令。dbstop设置断点。dbclear清除断点。d

4、bcont从断点处恢复执行。dbstack调用堆栈。dbstatus列出所有断点。dbstep执行一行或多行程序。dbtype查看程序的代码。2图形化程序调试,12.1.4 错误处理,在程序运行过程中,如果遇到警告或错误,需要进行处理。在MATLAB中,可以采用trycatch语句来捕获错误。可以利用函数error()发出错误信息,利用函数warning()发出警告信息。1使用trycatch语句2使用函数error()3使用函数warning(),12.2 M文件性能分析,在MATLAB中,通过程序的调试,可以改正程序中的语法错误和逻辑错误等。程序调试结束以后,用户编写的MATLAB程序可以

5、正常运行了,但可能并不是最优的,运行效率也不是最好的。这就需要对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所示。其

6、中菜单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 语言

7、是一种解释性语言,有时 MATLAB 程序的执行速度不是很理想。下面给出了一些编程的技巧,例如:尽量采用向量运算来代替循环,对于大型的矩阵预先给出维数等。,12.3.1 程序执行时间,在MATLAB中,可以对程序进行计时,从而获得程序的执行时间。在本书第2章的2.3.4节,给出了3种计时方法,分别是1)采用函数tic和toc进行计时;2)利用函数etime进行计时;3)利用cputime进行计时。如果程序不小心进入死循环,或者计算时间太长,用户可以在命令窗口中使用Ctrl+c来中断当前程序的执行。,12.3.2 编程技巧,(1)在利用MATLAB编程时,应尽量避免使用循环。(2)如果必须使用多

8、重循环,但是两个循环执行的次数不同,则建议在外循环执行循环次数少的,内循环执行循环次数多的。这样也可以显著提高速度。(3)对于大型矩阵,如果预先定维,会减少程序的执行时间,提高程序的运算效率。在程序中,给大型矩阵动态的确定维数,花费的时间非常多。建议在定义大矩阵时,首先用 MATLAB 的内在函数,如函数zeros()或ones()对之先进行定维,然后再进行赋值处理,这样会显著减少所需的时间的。(4)在编写程序时,优先考虑MATLAB的内在函数。(5)如果用户想继续提高程序的效率,可以考虑采用更加有效的算法。(6)此外,还可以尝试采用Mex 技术。,12.3.4 小技巧,下面给出在利用MATL

9、AB编程时,可能会用到的一些小技巧。在有些时候这些小技巧,也能起到事半功倍的效果。(1)对于M文件的命名,尽量不要用简单的英文单词,最好是由大小写英文字母、数字和下划线等组成。(2)在调试程序时,经常要屏蔽掉多行程序,可以在选定程序后,按快捷键Ctrl+r将这些程序行注释掉。(3)快捷键Ctrl+c可以中断正在执行的操作。(4)使用Tab键补全函数名或文件名。(5)在命令行窗口中,使用上下光标键和,将历史记录中的命令复制到输入位置。(6)使用文本编辑器的cell模式,能使程序更加清晰。,12.4 本章小结,本章给出了在MATLAB编程时,程序调试的方法,包括命令行下的直接调试法和工具调试法。介绍了Code Analyzer工具和Profiler分析工具,这些工具能够帮助用户对程序进行分析,实现程序的特定功能,并提高程序的运算效率。最后,给出了一些常用的编程小技巧,这些小技巧的灵活应用,用户在编写程序时,能够起到事半功倍的效果,需要灵活掌握。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号