版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、M文件与程序调试,在入门阶段,通常在行命令模式下工作。键 入一行命令后,让系统立即执行该命令。用 这种方法时,程序可读性差且难以存储。对 于复杂的问题,应编成可存储的程序文 件,再让MATLAB执行该程序。 MATLAB的程序类型有三种: 直接在命令窗口下执行的MATLAB指令; 可以存取的M文件,也叫脚本文件。 最后一种是函数(function)文件。 后两种都是以.m为后缀的M文件。,一、MATLAB程序,后面的内容是程序的注解,注解使程序更具可读性。 在主程序开头用clear指令清除变量,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要用clear。 参数值要集中放在程序的
2、开始部分,以便维护。应充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。 程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。 充分利用Debugger来进行程序的调试(设置断点、单步执行、连续执行)。 设置好MATLAB的工作路径,以便程序运行。,二、 MATLAB程序的基本设计原则,说明 清除命令:清除workspace中的变量和图形(clear,close) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB提供的运算指令或工具箱 提供的专用命令 控制循环
3、 包含:for,if,then,switch,while 等语句 逐行执行命令 end 绘图命令:将运算结果绘制出来,三、 MATLAB程序体的基本组成结构,复杂程序还需要调用子程序,或与其他应用程序结合起来。,在编辑环境中,文字的不同颜色显示表明文字的不同属性。 绿色:注解;黑色:程序主体;红色:属性值的设定;蓝色:控制流程。 在运行程序之前,必须设置好MATLAB的工作路径,使得所要运行的程序及运行程序所需要的其他文件处在当前目录之下,只有这样,才可以使程序得以正常运行。否则可能导致无法读取某些系统文件或数据,从而程序无法执行。 通过cd指令在命令窗口中可以更改、显示当前工作路径。 通过路
4、径浏览器(path browser)也可以进行设置。,四、M文件的编辑及工作路径设置,几点说明: 一组MATLAB语句的集合,没有输入,也没有输出,可以以任意MATLAB语句开始。 类似于DOS下的批处理文件,它的执行方式很简单,用户只需在MATLAB的命令提示符下键入该文件的文件名,这样MATLAB就会自动执行该命令文件中的各条语句。 脚本文件能对MATLAB工作空间中的数据进行处理处理,文件中所有语句的执行结果也完全返回到工作空间中。 可以方便调用已有的M函数、其他脚本文件等。 脚本文件格式适用于需要立即得到结果的小规模运算。,五、脚本文件,六、脚本文件的创建与执行,步骤: 在FILE菜单
5、下点击NEW生成一个新的M文件或点击OPEN打开已存在的M文件; 程序编写; 点击FILE菜单中的Save将编辑好的M文件保存; 执行程序。 在命令窗口中直接输入待执行文件的文件名。 点击Debug-Run菜单。 点击Run按钮。,七、脚本文件示例程序(MATLAB调试器的使用方法),【例1】 已知A=5 8 9; B=11,12,13;14,15,16;17,18,19; 建立一个命令文件计算BAT的值,然后将 变量A,B的值互换。,%exchange.m文件 A=5 8 9; B=11,12,13;14,15,16;17,18,19; compud %计算BAT C=A;A=B;B=C;
6、A B,%compud.m文件 D=B*AT, D = 268 334 400 A = 11 12 13 14 15 16 17 18 19 B = 5 8 9,设置或清除断点:使用快捷键F12。 执行:使用快捷键F5。 单步执行:使用快捷键F10。 step in:当遇见函数时,进入函数内部,使用快捷键F11。 step out:执行流程跳出函数,使用快捷键Shift+F11。 执行到光标所在位置:非常遗憾这项功能没有快捷键,只能使用菜单来完成这样的功能。 观察变量或表达式的值:将鼠标放在要观察的变量上停留片刻,就会显示出变量的值,当矩阵太大时,只显示矩阵的维数。 退出调试模式:没有设置快捷
7、键,使用菜单或者快捷按钮来完成。,八、调试器的使用,九、脚本文件注意事项,脚本文件中的所有变量为全局变量,执行后可以在工作空间及命令窗口中查询和修改。 脚本文件中每一行的语句在编写时若最后没有;,则其执行结果将在命令窗口中显示。因此,为了节省执行时间,应尽量避免变量的显示。,十、函数文件,几点说明: 新建、打开、保存与命令文件相同。 一组MATLAB语句的集合,函数可以接受输入参数,然后执行并输出结果。 由function起头,后跟的函数名必须与文件名相同。 函数体内使用的除返回和输入变量这些在function语 句中直接引用的变量以外的所有变量都是局部变量 (即需即用),即在该函数返回之后,
8、这些变量会自 动在MATLAB的工作空间中清除掉。如果希望这些中间 变量成为在整个程序中都起作用的变量,则可以将它 们设置为全局变量。 (global) 具有标准的基本结构。,函数定义行: function out1,out2,.=filename(in1,in2,.),输入参数,输出参数,可以是标量、数组、矩阵或字符串,十一、函数文件基本结构,第一行帮助行,即H1行 以(%)开头,作为lookfor指令搜索的行 函数体说明及有关注解 以(%)开头,用以说明函数的作用及有关内容。 函数体语句,注 1、其中函数名的命名规则与变量名相同。当输出 参数多于1个时,则应该用方括号括起来。 2、函数文件
9、也可以完全没有输入、输出变量,简 单定义为: function = filename,十二、函数文件示例程序,function p=ff(x) %示例程序之一 n=length(x); for i=1:n pp(i)=sqrt(x(i)2+10); end p=pp*2-5;,函数文件ff.m:,函数调用:,x=1:5 y=ff(x) y=ff(1:5),例:有输入输出参数的函数文件建立和调用,y = 1.6332 2.4833 3.7178 5.1980 6.8322,结果显示:,十二、函数文件示例程序,function test1 %示例程序之二 a=function test b=1 2
10、;3 4,函数文件test1.m:,函数调用:,在命令窗口键入test1 Run运行,例:无输入输出参数的函数文件建立和调用,十三、函数文件注意事项,函数名和文件名必须相同,开头应以function语句开始,之后可以加入注释和语句。 M函数文件有自己的工作空间,与MATLAB的工作空间分开。M函数的变量都是内部变量,M函数与工作空间的联系只有输入、输出变量。 M函数中若有return命令,则执行到该命令函数中断运行,返回工作空间。 M函数文件在执行一次后,被编为机器码,下一次运 行时直接调用,节省运算速度。 M函数文件可以调用脚本文件,但其中的变量作为M函数文件的内部变量,在工作空间中无效。
11、M函数文件可以调用自己,但尽量不用,否则容易形成死循环。,十四、函数文件与脚本文件的区别,函数文件可以传递参数,命令文件不具备参数传递功能。 在函数文件中定义及使用的变量都是局部变量,只在函数的工作区内有效,一旦退出函数,即为无效变量;而命令文件中定义或使用的变量都是全局变量,在退出文件后仍为有效变量。 函数文件的目的就是要扩展MATLAB功能。也就是说,函数文件利用MATLAB语言构造了一个新的MATLAB函数,而且这个函数的使用方法与MATLAB本身提供的库函数一样。,十五、变量作用域,几点说明: 函数文件不能直接访问MATLAB工作空间中的全局变量,它只能读取通过参数传入的变量和那些定义
12、为全局变量的工作空间变量。 若没有特别定义,则函数内的变量为局部变量,即使它与工作空间的变量同名,在该函数返回之后,这些变量会自动地被清除掉,在其它函数内和基本工作空间中都不能被调用。 如果在函数内访问全局变量,必须在函数内用global指令定义,定义的全局变量可以在函数内使用。 使用全局变量前应在命令窗口中定义该变量,但需要准确定义其维数和维数大小。,命令形式:global 全局变量列表,十六、全局变量的语句格式,在定义和使用全局变量时,应注意: 全局变量列表中各个变量名不能用逗号分隔。例如:使用global a b c,d命令MATLAB编译器会认为a,b,c三个变量为全局变量,而d是用户
13、想显示的变量,从而出现不希望的结果。 全局变量在使用前必须在MATLAB工作空间中定义。在某一个具体的MATLAB函数中如果要使用全局变量必须在函数前面用global命令声明,否则在该函数即使使用了该变量名,也会被看作局部变量使用。 为保证函数的独立性,一般情况下不使用全局变量。, 在MATLAB命令窗中运行以下指令: global z1 z2 z1=1:-0.1:0.6; z2=0:0.5:2; 编写函数文件ff1.m function p=ff1(x) global z1 z2 n=length(x); for i=1:n pp(i)=sqrt(x(i)2+10+z1(i)+z2(i);
14、end p=pp*2-5;,例:在函数ff.m中增加全局变量,十七、全局变量应用示例程序, x=1:5; Y=ff1(x),程序运行:,Y = 3.6332 5.2833 7.3178 9.5980 12.0322,结果显示:,十八、 常用的人机交互命令,(1)单变量输入命令 格式:变量名input(提示语句) 例如:x=input(请输入数值:) 例:用一M文件接受键盘输入的数据并求其平方值。 %This program is for square n=input(enter a number) n*n (2)键盘控制命令 格式:keyboard 说明:程序在此处暂停执行,用户可输入 多行命
15、令,最后输入return返回,十八、 常用的人机交互命令,(3)暂停命令 格式:pause %暂停,直到按任意键 pause(n) %暂停n秒 (4)命令显示控制语句 格式:echo on(off) 说明:控制是否在屏幕上显示程序内容。 (5)按键控制命令 格式:waitforbuttonpress 说明:暂停,直至用户按鼠标键或键盘键。,(6) 输入菜单的使用 格式:变量名menu(提示,s1,s2,) 注:s1,s2为菜单选项。 该语句常用于需要用户控制程序的流向的场合。 例如: r=menu(用户选择,顺序,分支,循环) 若用户选择分支,则r=2 例:现有四个数0、2、4、8,根据用户选择决定究竟取哪一个数,并求其平方值。 r=menu(choose,0,2,4,8) r*r,十八、 常用的人机交互命令,(7) 数字与字符串的输出 格式: disp(s) 注:s为字符串或数字变量 例: s1=How s2=are s3=you. disp(s1 s2 s3),十八、 常用的人机交互命令,(8) 注释语句的输入 利用对语句进行注释,以便使用中和修改时参考。 若要查看程序中的注释语句,则输入: help 文件名,例:手工输入两个实数a,b,给出n=1,210时的所有(a+b)n和(a-b)n。 (1)建立函数文件mypower.m fun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购配送管理制度
- 采购零部件质量管理制度
- 采购预算内部审查制度
- 采购验收制度与标准制度
- 量贩式KTV采购制度
- 钢结构采购管理制度
- 顾桥煤矿深部煤层开采底板灰岩水害注浆层位选择及治理研究
- AI模拟社会研究资料
- 2026年空心砖合同(1篇)
- 检验检测机构诚信评价指标体系
- 肺部真菌感染诊疗规范与临床实践
- 2025年贵州省高考物理试卷真题(含答案)
- 2026贵州省气象部门第二批公开招聘应届毕业生22人笔试备考试题及答案解析
- 昆明市公安局盘龙分局2026年第一批勤务辅警招聘(120人)笔试模拟试题及答案解析
- 医院感染预防护理培训课件
- 医护一体化业务查房制度
- 第2课 幸福生活是奋斗出来的 课件+视频-2025-2026学年道德与法治三年级下册统编版
- 2026年c语言考试题库100道【历年真题】
- 2025-2026学年统编版七年级道德与法治下册全册教案
- GB/T 18302-2026国旗升挂装置基本要求
- 2026年春季学期小学五年级下册信息科技(清华版·贵州)教学计划含进度表
评论
0/150
提交评论