




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七讲第七讲MATLAB程序调试及程序调试及Cell单元功能单元功能 MATLAB中的快捷键中的快捷键l注释符号用“%”l多行加注释用Ctrl+R,取消多行注释用Ctrl+T;也可以选中需要添加或取消注释的程序,然后在菜单Text中/或者单击鼠标右键选择Comment。或者Uncomment添加或取消注释。l编写代码时层次设置,减小缩进 Ctrl+ ,增大缩进 Ctrl+l对齐代码用Ctrl+I为什么用为什么用cell单元?单元?l在一个代码很长的m脚本文件中,可能需要对其中的一段代码一段代码进行反复修改、查看执行效果,这时,cell模式就非常有用,cell相当于把相当于把M文文件中的所有代码
2、分成几个模块,每个模块可以件中的所有代码分成几个模块,每个模块可以单独运行。单独运行。用光标点击某一个cell中任意位置时,背景将变为特定的颜色。cell模式中,断模式中,断点不起作用,但被调用的子程序中的断点是可点不起作用,但被调用的子程序中的断点是可以起作用的。以起作用的。 cell(单元)的使用(单元)的使用l在MATLAB的编辑编辑/调试器调试器中选择菜单项cell Enable Cell Mode Cell启动单元模式。cell(单元)的使用(续)(单元)的使用(续)用分隔符用分隔符“%” 定义单元定义单元l在要定义cell的代码行的前一行插入分隔符%,表示一个新的单元的开始。l一个
3、单元是从本单元的%开始到下一个单元的%结束。l单元间的水平线可区分各个单元,该水平线在打印M文件时不显示。lMATLAB不执行以%开头的代码行,一般一般%后是单元标题后是单元标题,所以应该从该行的下一行开始编写代码。给给cell加标题加标题l在分隔符%后键入一个空格,然后紧跟单元标题,MATLAB自动将其用粗体显示。加单元标题可提高程序的可读性。l当鼠标位于某一单元的任一行时,该单元所有的代码会被高亮显示高亮显示。背景色可通过菜单选项设置File Preferences Editor/Debugger Display,修改修改cell display options。cell(单元)的使用(续
4、)(单元)的使用(续)l一旦定义了单元,就可以使用cell工具栏中的按钮实现在单元间切换查看各单元的代码,并且可独立的测试每个单元的代码,查看相应的输出结果,即完成修改单元代码的参数及调试。cell(单元)的使用(续)(单元)的使用(续)cell工具栏如下所示:工具栏如下所示:插入一个插入一个cell分隔线分隔线运行当前运行当前cell代码代码运行当前运行当前cell代码,代码,且运行完毕后跳到且运行完毕后跳到下一个单元下一个单元运行文件中运行文件中的所有代码的所有代码显示单元标题显示单元标题l查看某个单元,可通过点击显示单元标题按钮 ,挑选要查看的单元标题l测试单元代码,用菜单项Cell中的
5、测试选项或工具栏上的按钮,测试时,单元的输出结果会显示在命令窗口或图形窗口。l单元测试功能可以运行M文件编辑/调试器中当前显示的代码,即使代码被修改后没有保存。测试的单元所在的M文件不必处于MATLAB的搜索路径。cell(单元)的使用(续)(单元)的使用(续)l运行之后,修改单元中的数值,单元会自动重新计算并输出结果,不必再次点击运行按钮。l要修改单元中的数值,首先要把鼠标放在该数首先要把鼠标放在该数旁边旁边,而后用单元工具栏上的数值修改工具数值修改工具。对数值进行修改。用这个工具,可以对这个数进行加、减、乘、除运算。l注意:注意:MATLAB不会自动保存用单元工具栏对变量进行的修改,所以修
6、改后要务必手动保存。所以修改后要务必手动保存。 cell(单元)的使用(续)(单元)的使用(续)M文件编辑文件编辑/调试器调试器 由现存的代码创建M文件的方法:用命令历史窗口命令历史窗口中的语句,选中语句点击右键,选择Creat M-File。在大部分MATLAB函数(非内置函数)和工具箱函数上进行修改,改完后保存或另存。Demos中的例子。程序的调试程序的调试l程序一般可能出现的错误有:(1)语法错误,如拼写错误等,此种错误很容易被发现。(2)运行错误,即用户编写的算法出现错误,此种错误不容易检测,要不断的进行调试。语法错误的检测方法语法错误的检测方法l利用MATLAB系统预设的一些语法强调
7、颜色语法强调颜色可检测出错误所在;如关键字为蓝色,错误为红色等,请查看请查看File-Preferences-Color中的中的M-File syntax highlighting colors栏。栏。l利用分隔符匹配分隔符匹配可正确地匹配括号和关键字 选择菜单File- Preferences- Keyboard - Delimiter Matching设置调试器检查的匹配。 l当运行有语法错误的M文件时,MATLAB在命令窗口显示错误信息,并显示出它所在的行。点击错误信息部分的下划线,相应的M文件被打开,且光标指向错误所在的那行。语法错误的检测方法(续)语法错误的检测方法(续)程序调试的过
8、程程序调试的过程在调试程序之前先要确定被调试的文件已被保存,且已被加载到搜索路径或设置为当前路径。设置断点 有三种基本类型的断点可以设置: (1) 标准断点,停在指定行 (2) 条件断点,在特定条件下停在指定行 (3) 错误断点,在特定类型的错误如警告、NaN、无穷值出现时程序停止运行,不用在指定的文件中指定行设置断点。设置断点时注意事项:设置断点时注意事项:(1)如果想要检查循环增量的值,不要再)如果想要检查循环增量的值,不要再for语句处设置断点,而是在语句处设置断点,而是在for语句的下一行设语句的下一行设置,因为置,因为MATLAB只执行一次只执行一次for语句,所以语句,所以在在fo
9、r语句处设断点,看不到增量的变化。语句处设断点,看不到增量的变化。(2)在)在M文件编辑文件编辑/调试器中,左侧标注行号调试器中,左侧标注行号的后面具有的后面具有“”的行才是可执行行,否则为的行才是可执行行,否则为不可执行行,如注释行、空行。断点要设置在不可执行行,如注释行、空行。断点要设置在可执行行上,如果设在不可执行,系统认为断可执行行上,如果设在不可执行,系统认为断点是被设在了该行的下一行。点是被设在了该行的下一行。程序调试的过程(续)程序调试的过程(续)设置断点的方法:(1)点击M文件编辑器的breakpoint alley 栏,即点击代码前的“” ;也可把鼠标放在设断点的那一行,而后
10、点击工具栏上的设置断点按钮 ,或点击右键点击Set/clear Breakpoint。(2)红色表示有效断点,灰色表示无效断点,断点为灰色的原因是文件被修改后未保存或此文件中存在语法错误。 按F5运行M文件,碰到断点停止。运行后的结果为:命令窗口的提示符变成了 K 表示MATLAB正处于调试状态 。断点处的绿色箭头指出了接下来要被执行的语句(言外之意是此行还未运行)。Stack域显示出当前的函数,注意工作空间既可看到基本工作空间的变量也可看到函数的工作空间的局部变量。程序调试的过程(续)程序调试的过程(续)继续运行,直到继续运行,直到遇到下一个断点遇到下一个断点单步调试M文件单步运行单步运行进
11、入函数进入函数step in跳出函数跳出函数step out退出调试退出调试模式模式当点击跳入子函数时,当点击跳入子函数时,Stack域显示子函数的域显示子函数的工作空间。子函数中的调试方法与主函数相同工作空间。子函数中的调试方法与主函数相同程序调试的过程(续)程序调试的过程(续)检测你所关注的变量。当程序在断点处停止运行时,你可以查看工作空间中的任意变量的当前值。若当前值与预期值相符,则程序没错,运行下一行,否则,在本行或前一行寻找错误。程序调试的过程(续)程序调试的过程(续)检测变量的方法检测变量的方法:a)在Stack域选择工作空间。b)在M文件编辑/调试器中把鼠标放在你所关注的变量上,
12、用数据提示查看变量的值。c)在命令窗口中查看值d)在工作空间浏览器和阵列编辑器中查看值。纠正问题和结束调试 a. 修改值检测结果 调试时,可以在命令窗口给要检测的变量赋一新值,看接下来程序的反应,如与预期结果相同,则没问题;若有,则说明程序有问题。 b. 结束调试 要修改,保存文件必须退出调试模式。按退出调试模式的按钮 c. 清除断点 从debug下拉菜单中选Enable/Disable Breakpoint使断点失灵,从而暂时忽略断点。或者点击 清除所有断点。程序调试的过程(续)程序调试的过程(续) M-Lint 代码检测和剖析报告代码检测和剖析报告lM-Lint信息帮助用户学习更多的MAT
13、LAB特性,更加高效地开发M语言代码。M-Lint帮助用户仔细地遍历代码,使得代码更加简洁,高效和可维护。 l调用调用M-Lint的方法:的方法: 从MATLAB的Editor/Debugger,选择Tools,并点击Check Code with M-Lint 使用matlab-mode观测M-Lint信息 在Current Directory browser,选择M-Lint Code Check Report 在MATLAB命令行窗口键入mlint 使用使用M-Lint 的方法:的方法:l可以对现有的M文件或一组M文件产生一个报告,根据报告中的意见去修改,或利用M-Lint的自动代码纠正
14、功能,在M文件编辑/调试器中边工作边让它来检测。 编辑编辑/调试器中的调试器中的M-Lint 自动代码分析器自动代码分析器l分析器可对编辑/调试器中的M文件完成连续的、自动的代码检测 。l自动代码分析器的使用方法:自动代码分析器的使用方法:使用它之前要确信M-Lint是有效的(在File-Preferences-M-Lint中设置)。打开要编辑/调试的文件,编辑窗口的右上边编辑窗口的右上边缘有一个缘有一个M-Lint信息指示器信息指示器:若为红色则表示有语法错误;为橘黄色则表示警告或有可以改进的地方,但没有错误;为绿色则表示既没有语法错误又没有警告和改进的地方 。点击点击M-Lint信息指示器
15、可信息指示器可以使光标到达下一个出现以使光标到达下一个出现错误或警告的位置。错误或警告的位置。代码段下方的红色波浪线表示代码段下方的红色波浪线表示该处有错误或警告,鼠标放在该处有错误或警告,鼠标放在上面会出现相应的上面会出现相应的M-Lint信息。信息。打开例子程序打开例子程序:open(fullfile(matlabroot,help,techdoc,matlab_env,examples,lengthofline.m)M-Lint信息栏,红色标信息栏,红色标记代表错误,橘黄色标记代表错误,橘黄色标记代表警告或可以改进记代表警告或可以改进的地方。把鼠标放在标的地方。把鼠标放在标记上可以查看检
16、测消息。记上可以查看检测消息。被高亮的一些代码标明此处的被高亮的一些代码标明此处的错误或警告可以利用错误或警告可以利用M-Lint自自动修改它动修改它 ,把光标放在此代,把光标放在此代码上,然后点击鼠标右键即可码上,然后点击鼠标右键即可实现。实现。剖析器(剖析器(profiler)l在剖析器里面运行一个MATLAB语句或M文件,它会给此语句或文件的运行时间。可以从Desktop菜单访问剖析器。利用剖析器来计算某段程序运行时间的方法有两种: (1) 直接在profiler窗口中的Run this code栏输入想分析的语句或M文件名称,然后点击Start Profiling或按回车键即可(注意被分析的M文件一定要在搜索路径或当前目录中)。 (2) 嵌入代码分析器;在预分析的代码段的的首尾分别加上profile on 和profile viewer 命令,当程序正常运行结束时,代码分析器窗口将弹出。代码分析窗口所包含的信息代码分析窗口所包含的信息lFunction Name : 函数名;lCalls : 函数被调用次数;lTotal Time : 执行该函数的CPU总用时,包含任何其它被它调用的函数的CPU时间。lSelf Time : 执行该函数的CUP总用时,不包含任何其它被它调用的函数的CUP时间。lTotal Time Plot : 时间用时的曲线图。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机技术与软件应用实务试题及答案2025
- 茶艺师职业发展规划的试题及答案
- 健康管理师考试备考经验试题及答案
- 2025年妇幼保健员考试分析及试题及答案
- 2025年土木工程科研项目试题及答案
- 透视2024年全媒体运营师试题及答案
- 二零二五婚前购房资金监管与婚后产权分配协议
- 重难点专题15 空间中的五种距离问题(五大题型)(原卷版)
- 二零二五年度个人租赁合同书(含押金退还细则)
- 二零二五年度厨师职业发展基金合作协议
- DBJ50-T-029-2019 地质灾害防治工程设计标准
- 包汤圆的制作流程
- 《服务技能提升》课件
- 某森林康养旅游项目可行性研究报告
- 2025年中国人保财险江西分公司招聘笔试参考题库含答案解析
- 2025年安徽省烟草专卖局(公司)招聘高频重点提升(共500题)附带答案详解
- 2025年春新冀教版英语三年级下册课件 2L2
- 2025山东省建筑安全员-B证考试题库及答案
- 2025年宁夏电投新能源限公司招聘工作人员13人高频重点提升(共500题)附带答案详解
- 子宫内膜癌治疗进展
- 《雷达原理》课件-3.5.5教学课件:inSAR雷达工作原理
评论
0/150
提交评论