版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第12章程序调试和编程技术在编写MATLAB程序时可能会出错,因此需要调试程序。在MATLAB中调试m文件主要有两种方法:直接调试方法和工具调试方法。编写的程序在能够执行特定功能时分析程序的性能,例如计算速度和效率。在MATLAB中,使用Profile工具分析程序的性能。本章最后介绍了一些常用的编程技术。1,PPT学习通信,调试12.1 M文件,程序员不可避免地出现程序错误。在编写多人参与的大型程序时,掌握一般程序调试方法尤为重要。下面首先介绍错误消息,然后介绍常用的直接调试方法和工具调试方法等。2,PPT学习交换,12.1.1错误消息,程序调试是一个非常基础和重要的问题。没有人能一次写完没有
2、错误的程序。错误的程序主要分为三类。拼写错误(例如,sum()以smu()记录)。拼字错误很容易侦测到,程式执行时会提示您输入错误。语法错误:例如,在6/0时,输出为无限Inf。程序运行时不一定报告错误,但输出不正常。逻辑错误:这些错误非常隐藏,通常不太考虑程序中的算法。程序正常运行,但结果与预期不符。3,PPT学习交换,12.1.2直接调试方法,以及编写脚本文件或函数的MATLAB,使生成的程序非常灵活,也非常简洁,易于阅读和理解。对于不复杂的程序,可以使用直接调试方法对程序进行调试。(1)如果程序错误或提供警告消息,仔细分析错误或警告信息会导致错误。(2)程序使用函数disp()显示函数m
3、文件的中间结果。(3)如果单独调试函数m文件,为了调试,可以将函数m文件修改为脚本m文件。(4)使用注释遮罩程序中的某些行,然后在程序行前输入注释符号%。(5)在程序需要调试的地方添加keyboard函数。4、PPT学习通信、12.1.3工具调试方法、MATLAB强大的程序调试工具、命令行窗口中的调试命令或图形窗口中的Debugger工具均可用于程序调试。下面另外介绍。1.基于命令行的调试在命令行窗口中输入。help debug可以查看调试命令。Dbstop设置断点。清除Dbclear停止点。Dbcont在断点处恢复执行。Dbstack调用堆栈。Dbstatus列出所有断点。Dbstep执行一
4、个或多个程序行。Dbtype查看器代码。2.图形程序调试、5、PPT学习通信、12.1.4错误处理、程序运行过程中出现警告或错误时,应处理它们。Try.可以使用catch语句从MATLAB中捕获错误。您可以使用Error()函数发出错误消息,使用warning()函数显示警告消息。1.try.使用catch语句2。使用函数error() 3.使用函数warning()6、PPT学习通信、12.2 M文件性能分析以及在MATLAB中调试程序,可以更正程序中的语法错误或逻辑错误等。程序调试结束后,您编写的MATLAB程序可以正常运行,但可能不是最佳的,也可能不是最佳的运行效率。为此,需要分析和优化
5、MATLAB程序的性能。MATLAB提供的m文件分析工具具有代码分析器工具和图形操作界面,使用起来非常方便,下面详细介绍。您可以利用、7、PPT学习通信、12.2.1代码分析器工具和MATLAB中的代码分析器工具来分析程序中的错误和性能等。以前的MATLAB版本称为M-lint,基本功能相似,但名称不同。用户首先使用m文件编辑器打开要分析的m文件,然后从m文件编辑器的“工具”菜单中选择“工具分析器”选项,如图12.8所示。其中,菜单MATLAB compiler message default setting将Code Analyzer工具设置为默认值,然后单击菜单Show Code Anal
6、yzer Report,在浏览器窗口中显示分析报告。8,使用PPT学习通信、12 . 2 . 2 profiler分析工具、MATLAB中的profiler工具分析MATLAB代码。用户可以通过在MATLAB的主界面中单击菜单desktop | profiler来显示profiler工具。在Run this code后输入程序文件名或程序语句,然后单击按钮Start Profiling执行程序的性能分析。9,PPT学习通信,12.3编程技术,MATLAB语言是解释语言,因此有时MATLAB程序的执行速度并不理想。以下是编程的一些提示,例如使用矢量运算代替循环,预先指定大矩阵的维数等。10,PP
7、T学习交换,12.3.1程序运行时间,在MATLAB中计时程序以获得程序运行时间。在本书第2章的2.3.4节中,三种计时方法(1)使用TIC和TOC函数进行计时。2)在计时中使用函数etime3)在计时中使用CPU时间。如果程序意外进入死循环或计算时间过长,用户可以在命令窗口中使用Ctrl c中止当前程序的执行。11,PPT学习通信,12.3.2编程技术,(1)使用MATLAB编程时,应尽量避免回收。(2)如果需要使用多个循环,但两个循环运行不同,最好在外部循环中使用较少的循环,在内部循环中使用较多的循环。这也可以大大提高速度。(3)对于大型矩阵,预先指定维数可以减少程序运行时间,提高程序的计
8、算效率。程序动态确定大型矩阵中的维数需要很长时间。定义大型矩阵时,建议您首先使用MATLAB的内部函数(如zeros()函数或ones()指定值,然后再指定值。这样可以大大减少所需的时间。(4)编写程序时,优先考虑MATLAB的内部函数。(5)如果用户想继续提高程序的效率,可以考虑采用更有效的算法。(6)还可以尝试Mex技术。下面列出了使用12、PPT学习通信、12.3.4提示和MATLAB编程时的一些提示。有时,这些小技术可以通过更少的努力产生更多的效果。(1)对于m文件命名,建议不要使用简单的英语单词,而是将其配置为大小写的字母、数字、下划线等。(2)调试程序时,通常会屏蔽多行程序,选择程序后,可以按热键Ctrl r键注释掉该程序行。(3)快捷键Ctrl c可以中止正在执行的操作。(4)使用Tab键完成函数名或文件名。(5)在命令行窗口中,使用上下光标键将命令从历史记录复制到输入位置。(6)使用文本编辑器的cell模式可以使程序更清晰。13,PPT学习通信,12.4本章摘要,本章提供了在MATLAB编程中调试程序的方法,包括命令行下的直接调试方法和工具调试方法。介绍Code Analyzer工具和profiler分析工具,它
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47473-2026互联网域名服务身份信息核验技术要求
- 代谢相关脂肪性肝病无创评估专家共识
- 电力工程造价从业人员专业能力评价考试(专业技术公共基础)考前模拟试题(上海市2025年)
- 2026上海市助理政工师职称考试(思想政治工作)自测试题及答案解析
- 2026年心理学教育专家考试试题及答案解析
- 2026年施工员岗位技能考试试题及答案解析
- 娲皇宫元素文创设计-以《娲皇印象》为例
- 2026年湖北省路桥工程专业技术职务水平能力测试(交通工程初中级)全真模拟试题及答案
- 2026年成人高考专升本教育真题试卷及答案
- Python猜数字游戏教学课件
- 2026年卫生健康知识培训
- 电梯意外事件与事故应急救援及演习制度培训
- 2026年东省济南第一中学高考语文二模试卷
- 小学英语三年级下册Unit 5 Old Toys单元整体教学设计
- 2026年高中化学学业水平考试知识点归纳总结(复习必背)
- 护理教育学课件下载
- 生物芯片中光电传感器的技术解析与应用探索
- 三下道法 第三单元《我是家庭一员》素养测评卷26春
- 广西壮族自治区2025广西农业科学院及直属单位招聘笔试历年参考题库典型考点附带答案详解
- 12.2 跨学科实践:制作简易杆秤-课件(内嵌视频)2025-2026学年物理人教版八年级下册
- 2026生物制造关键装备与工艺革新白皮书
评论
0/150
提交评论