版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七讲MATLAB程序调试及Cell单元功能
MATLAB中的快捷键注释符号用“%”多行加注释用Ctrl+R,取消多行注释用Ctrl+T;也可以选中需要添加或取消注释的程序,然后在菜单Text中/或者单击鼠标右键选择Comment。或者Uncomment添加或取消注释。编写代码时层次设置,减小缩进Ctrl+[
,增大缩进Ctrl+]对齐代码用Ctrl+I为什么用cell单元?在一个代码很长的m脚本文件中,可能需要对其中的一段代码进行反复修改、查看执行效果,这时,cell模式就非常有用,cell相当于把M文件中的所有代码分成几个模块,每个模块可以单独运行。用光标点击某一个cell中任意位置时,背景将变为特定的颜色。cell模式中,断点不起作用,但被调用的子程序中的断点是可以起作用的。cell(单元)的使用在MATLAB的编辑/调试器中选择菜单项cell>EnableCellModeCell启动单元模式。cell(单元)的使用(续)用分隔符“%%”定义单元在要定义cell的代码行的前一行插入分隔符%%,表示一个新的单元的开始。一个单元是从本单元的%%开始到下一个单元的%%结束。单元间的水平线可区分各个单元,该水平线在打印M文件时不显示。MATLAB不执行以%%开头的代码行,一般%%后是单元标题,所以应该从该行的下一行开始编写代码。给cell加标题在分隔符%%后键入一个空格,然后紧跟单元标题,MATLAB自动将其用粗体显示。加单元标题可提高程序的可读性。当鼠标位于某一单元的任一行时,该单元所有的代码会被高亮显示。背景色可通过菜单选项设置File>Preferences>Editor/Debugger>Display,修改celldisplayoptions。cell(单元)的使用(续)一旦定义了单元,就可以使用cell工具栏中的按钮实现在单元间切换查看各单元的代码,并且可独立的测试每个单元的代码,查看相应的输出结果,即完成修改单元代码的参数及调试。cell(单元)的使用(续)cell工具栏如下所示:插入一个cell分隔线运行当前cell代码运行当前cell代码,且运行完毕后跳到下一个单元运行文件中的所有代码显示单元标题查看某个单元,可通过点击显示单元标题按钮,挑选要查看的单元标题测试单元代码,用菜单项Cell中的测试选项或工具栏上的按钮,测试时,单元的输出结果会显示在命令窗口或图形窗口。单元测试功能可以运行M文件编辑/调试器中当前显示的代码,即使代码被修改后没有保存。测试的单元所在的M文件不必处于MATLAB的搜索路径。cell(单元)的使用(续)运行之后,修改单元中的数值,单元会自动重新计算并输出结果,不必再次点击运行按钮。要修改单元中的数值,首先要把鼠标放在该数旁边,而后用单元工具栏上的数值修改工具。对数值进行修改。用这个工具,可以对这个数进行加、减、乘、除运算。注意:MATLAB不会自动保存用单元工具栏对变量进行的修改,所以修改后要务必手动保存。
cell(单元)的使用(续)M文件编辑/调试器
由现存的代码创建M文件的方法:用命令历史窗口中的语句,选中语句点击右键,选择CreatM-File。在大部分MATLAB函数(非内置函数)和工具箱函数上进行修改,改完后保存或另存。Demos中的例子。程序的调试程序一般可能出现的错误有:(1)语法错误,如拼写错误等,此种错误很容易被发现。(2)运行错误,即用户编写的算法出现错误,此种错误不容易检测,要不断的进行调试。语法错误的检测方法利用MATLAB系统预设的一些语法强调颜色可检测出错误所在;如关键字为蓝色,错误为红色等,请查看File->Preferences->Color中的M-Filesyntaxhighlightingcolors栏。利用分隔符匹配可正确地匹配括号和关键字选择菜单File->Preferences->Keyboard->DelimiterMatching设置调试器检查的匹配。当运行有语法错误的M文件时,MATLAB在命令窗口显示错误信息,并显示出它所在的行。点击错误信息部分的下划线,相应的M文件被打开,且光标指向错误所在的那行。语法错误的检测方法(续)程序调试的过程在调试程序之前先要确定被调试的文件已被保存,且已被加载到搜索路径或设置为当前路径。设置断点有三种基本类型的断点可以设置:
(1)标准断点,停在指定行
(2)条件断点,在特定条件下停在指定行
(3)错误断点,在特定类型的错误如警告、NaN、无穷值出现时程序停止运行,不用在指定的文件中指定行设置断点。设置断点时注意事项:(1)如果想要检查循环增量的值,不要再for语句处设置断点,而是在for语句的下一行设置,因为MATLAB只执行一次for语句,所以在for语句处设断点,看不到增量的变化。(2)在M文件编辑/调试器中,左侧标注行号的后面具有“-”的行才是可执行行,否则为不可执行行,如注释行、空行。断点要设置在可执行行上,如果设在不可执行,系统认为断点是被设在了该行的下一行。程序调试的过程(续)设置断点的方法:(1)点击M文件编辑器的breakpointalley栏,即点击代码前的“-”;也可把鼠标放在设断点的那一行,而后点击工具栏上的设置断点按钮,或点击右键点击Set/clearBreakpoint。(2)红色表示有效断点,灰色表示无效断点,断点为灰色的原因是文件被修改后未保存或此文件中存在语法错误。按F5运行M文件,碰到断点停止。运行后的结果为:命令窗口的提示符变成了K>>表示MATLAB正处于调试状态。断点处的绿色箭头指出了接下来要被执行的语句(言外之意是此行还未运行)。Stack域显示出当前的函数,注意工作空间既可看到基本工作空间的变量也可看到函数的工作空间的局部变量。程序调试的过程(续)继续运行,直到遇到下一个断点单步调试M文件单步运行进入函数stepin跳出函数stepout退出调试模式当点击跳入子函数时,Stack域显示子函数的工作空间。子函数中的调试方法与主函数相同程序调试的过程(续)检测你所关注的变量。当程序在断点处停止运行时,你可以查看工作空间中的任意变量的当前值。若当前值与预期值相符,则程序没错,运行下一行,否则,在本行或前一行寻找错误。程序调试的过程(续)检测变量的方法:在Stack域选择工作空间。在M文件编辑/调试器中把鼠标放在你所关注的变量上,用数据提示查看变量的值。在命令窗口中查看值在工作空间浏览器和阵列编辑器中查看值。纠正问题和结束调试
a.修改值检测结果调试时,可以在命令窗口给要检测的变量赋一新值,看接下来程序的反应,如与预期结果相同,则没问题;若有,则说明程序有问题。
b.结束调试要修改,保存文件必须退出调试模式。按退出调试模式的按钮
c.清除断点从debug下拉菜单中选Enable/DisableBreakpoint使断点失灵,从而暂时忽略断点。或者点击清除所有断点。程序调试的过程(续)M-Lint代码检测和剖析报告M-Lint信息帮助用户学习更多的MATLAB特性,更加高效地开发M语言代码。M-Lint帮助用户仔细地遍历代码,使得代码更加简洁,高效和可维护。调用M-Lint的方法:
从MATLAB的Editor/Debugger,选择Tools,并点击CheckCodewithM-Lint使用matlab-mode观测M-Lint信息在CurrentDirectorybrowser,选择M-LintCodeCheckReport在MATLAB命令行窗口键入mlint使用M-Lint的方法:可以对现有的M文件或一组M文件产生一个报告,根据报告中的意见去修改,或利用M-Lint的自动代码纠正功能,在M文件编辑/调试器中边工作边让它来检测。编辑/调试器中的M-Lint自动代码分析器分析器可对编辑/调试器中的M文件完成连续的、自动的代码检测。自动代码分析器的使用方法:使用它之前要确信M-Lint是有效的(在File->Preferences->M-Lint中设置)。打开要编辑/调试的文件,编辑窗口的右上边缘有一个M-Lint信息指示器:若为红色则表示有语法错误;为橘黄色则表示警告或有可以改进的地方,但没有错误;为绿色则表示既没有语法错误又没有警告和改进的地方。点击M-Lint信息指示器可以使光标到达下一个出现错误或警告的位置。代码段下方的红色波浪线表示该处有错误或警告,鼠标放在上面会出现相应的M-Lint信息。打开例子程序:open(fullfile(matlabroot,'help','techdoc','matlab_env','examples','lengthofline.m'))M-Lint信息栏,红色标记代表错误,橘黄色标记代表警告或可以改进的地方。把鼠标放在标记上可以查看检测消息。被高亮的一些代码标明此处的错误或警告可以利用M-Lint自动修改它,把光标放在此代码上,然后点击鼠标右键即可实现。剖析器(profiler)在剖析器里面运行一个MATLAB语句或M文件,它会给此语句或文件的运行时间。可以从Desktop菜单访问剖析器。利用剖析器来计算某段程序运行时间的方法有两种:
(1)直接在profiler窗口中的Runthiscode栏输入想分析的语句或M文件名称,然后点击StartProfiling或按回车键即可(注意被分析的M文件一定要在搜索路径或当前目录中)。
(2)嵌入代码分析器;在预分析的代码段的的首尾分别加上profileon和profileviewer命令,当程序正常运行结束时,代码分析器窗口将弹出。代码分析窗口所包含的信息FunctionName:函数名;Calls:函数被调用次数;TotalTime:执行该函数的CPU总用时,包含任何其它被它调用的函数的CPU时间。SelfTime:执行该函数的CUP总用时,不包含任何其它被它调用的函数的CUP时间。TotalTimePlot:时间用时的曲线图。注意:当完成代码分析后,请删除profileon和profileviewer命令,因为嵌入代码分析器会使程序运行变慢。
结束条件断点的设置
如果想要在一定循环次数后检查程序的运行结果,可以设置条件断点。点击设置断点的行,按右键在下拉菜单中选中Set/ModifyConditionalBrea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土鲫鱼养殖技术培训课件
- 叶酸发放知识培训课件
- 1.2.1大数据处理框架
- 分包培训教学课件
- 地下建筑施工 山岭隧道施工技术
- 2025 小学一年级数学下册两位数加一位数(不进位)课件
- 2025年企业节日礼品采购合同协议福利
- 标准预防教学课件
- 柳州生产安全培训课件
- 2026年银行业风控部门主管面试题及答案
- 广东省东莞市东华中学2023-2024学年数学九上期末考试试题含解析
- 关于安吉物流市场的调查报告
- 抑郁病诊断证明书
- 维克多高中英语3500词汇
- 病理生理学复习重点缩印
- 第五届全国辅导员职业能力大赛案例分析与谈心谈话试题(附答案)
- 《大数的认识》复习教学设计
- GB/T 3513-2018硫化橡胶与单根钢丝粘合力的测定抽出法
- GB/T 34590.3-2017道路车辆功能安全第3部分:概念阶段
- 统编教材部编人教版小学语文习作单元教材解读培训课件:统编小语四-六年级习作梳理解读及教学建议
- 国家开放大学电大《公共部门人力资源管理》期末考试题库及答案
评论
0/150
提交评论