版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第四章 计算机网络 MATLAB基础及应用 第2版 主编:于润伟 朱晓慧 第2章 MATLAB程序设计 第2章 MATLAB程序设计 本章要点本章要点 M文件的建立与调试方法 M文件的程序流程语句 函数文件的建立与调用 应用程序设计 第2章 MATLAB程序设计 2.1 M文件 一、M文件的建立 M文件是由命令或函数构成的文本文件,可以用任何文本编辑程 序来建立和编辑,一般常用且最为方便的是使用MATLAB提供的 文本编辑器。M文件有命令文件(也称主程序文件)和函数文件 两种,命令文件可包含多个函数文件。 1打开文本编辑器打开文本编辑器 打开MATLAB文本编辑器有以下三种方法: 1)菜单操
2、作:单击操作桌面的File菜单,再单击NewM-file命令; 2)命令操作:在命令窗口输入命令edit,单击Enter键; 3)命令按钮操作:单击操作桌面工具栏上的新建文件按钮 。 第2章 MATLAB程序设计 2建立新的建立新的M文件文件 在文本编辑器的文档窗口输入文件内容,输入完毕后, 选择文本编辑器窗口File菜单的Save或Save As命令存 盘,默认名字是Untitled。注意,M文件存放位置一般 是MATLAB缺省的用户工作目录,如果要选择别的目 录,则应该将该目录设定为当前目录或将其加到搜索 路径中,以便于文件查找。 3运行运行M文件文件 输入文件内容并检查后,单击F5或文本
3、编辑器的 Debug Save and Run,在出现的Save file as对话 框中,输入文件名myfile.m(以上例为例),单击“保 存”,M文件自动存盘后运行。 第2章 MATLAB程序设计 4打开已有的打开已有的M文件文件 打开已有的M文件,也有三种方法: 1)菜单操作:单击操作桌面或文本编辑器的File Open选项,则打开Open或Open File窗口,再选择 要打开的文件; 2)命令操作:在命令窗口输入命令edit ,回车 后则打开指定的M文件。如果文件不在当前路径下, 还需在文件名前加上路径。例如打开上例的文件,可 在命令窗口的提示符后输入edit myfile.m;
4、3)命令按钮操作:单击操作桌面工具栏上的打开文件按 钮 ,则打开Open或Open File窗口,再选择要打开 的文件。 第2章 MATLAB程序设计 二、M文件的调试 1直接调试法直接调试法 1)如果在错误信息中指出了出错的行号,可先根据错误信息检查该 语句是否存在语法错误或运行中变量尺寸不一致等情况。 2)检查所调用函数或命令的拼写是否正确,括号(包括方括号和圆 括号)是否配对,各种流程控制语句是否匹配(如for与end、 while与end、switch与end等)。 3)检查所调用的函数或载入的数据文件是否在当前目录或搜索路径 上。 4)将重点怀疑的命令行后的分号删除,使得计算结果能够
5、实时地显 示在屏幕上,作为查错的依据,根据显示的结果判断问题的所在。 5)如果怀疑某个函数文件有问题,可以在该函数文件的函数定义行 前加“%”,使其函数体成为命令文件(因为命令文件中的变量存 储在工作空间中,可以在工作空间窗口和数组编辑器观察修改), 调好后再改回函数文件。 第2章 MATLAB程序设计 2文本编辑器的编辑功能 (1)Go To. 当选定Go To.选项时,弹出如图2-2所示的对话框,输入行号 单击【OK】后,光标自动移到指定的行上,并将该行作为当前行。 (2)Set/Clear Bookmark 该选项为“设置或清除书签”。 第2章 MATLAB程序设计 3文本编辑器的调试功
6、能 (1)设置断点 设置断点是高级语言中程序调试的重要手段之一,断点是在程 序特定位置设置的中断点,当程序运行至断点处时会暂停运行, 此时可通过检查相关变量的内容等方法确定程序的运行是否正确。 图中的红色菱形点即为设置的断点。 第2章 MATLAB程序设计 (2)Debug菜单 1)Step:单步执行。每单击一次,程序运行一次,但不 进入函数。 2)Step in:单步运行。遇到函数时进入函数内,仍单步 运行。 3)Step out:停止单步运行。如果是在函数中,跳出函 数;如果不在函数中,直接运行到下一个断点处。 4)Save and Run:存储文件并从第1行开始执行程序, 当遇到第1个断
7、点时暂停运行,并变为Continue;单击 F5或【Continue】则继续运行。 5)Go Until Cursor:从当前位置运行到光标所在的位置。 第2章 MATLAB程序设计 2.2 程序流程语句 一、一、if语句语句 1单分支单分支if语句语句 最简单的选择结构语句,其基本格式为: if 表达式 语句组 end 说明:表达式多为关系或逻辑表达式。如果表达式为真(非零), 就执行if和end之间的语句组,然后再执行end之后的语句;如果 表达式为假(零),就直接执行end之后的语句。 第2章 MATLAB程序设计 2双分支双分支if语句语句 前面提供的单分支if语句只能处理较简单的条件
8、,功能 不全面。为此MATLAB还提供了双分支if语句结构。其 基本格式为: if 表达式 语句组 else 语句组 end 说明:如果表达式为真(非零),则执行语句组1,再 执行end后面的语句;如果表达式假(为零),则先执 行语句组2,再执行end后面的语句。 第2章 MATLAB程序设计 3多分支多分支if语句语句 当有三个或更多的选择时,可采用if语句的嵌套,也可以采用多分 支if语句。其基本格式为: if 表达式 语句组 elseif 表达式 语句组 elseif 表达式n 语句组n else 语句组n+1 end 说明:先判断表达式1的值,若为真,则执行语句组1,执行完语句 组1后
9、,跳出该选择结构,继续执行end 后的语句;当表达式1的值 为假时,跳过语句组1,进而判断表达式2,若为真,则执行语句组 2,然后继续执行end 后的语句;如果表达式2的值也为假,则跳过 语句组2,继续判断表达式3,如此下去,若所有表达式都为假 ,则 执行else后的语句组n+1,再执行end 后的语句。else语句可以缺省。 第2章 MATLAB程序设计 二、 switch语句 switch语句是多分支选择语句。if语句只有两个分支可供选择,如果分支较多, 则嵌套的if语句层数多,程序冗长而且可读性降低。switch语句的基本格式为: switch 表达式 case 数组 语句组 case数
10、组2 语句组 case 数组n 语句组n otherwise 语句组n+1 end 说明:先计算表达式的值,再按顺序与case语句后面的数组值进行比较,如果相 等则执行该组语句,然后执行end后的语句,不再继续比较。当表达式的值不等 于任何一个case语句后面的数组值时,程序将执行otherwise语句后的语句组, 再执行 end后的语句。注意:这种情况下缺省otherwise语句,程序会提示出错。 第2章 MATLAB程序设计 三、while语句 while语句是条件循环语句,在条件(多为关系表达式) 控制下重复执行,直到条件不成立为止。while循环的 一般形式是: while 表达式 语
11、句体 end 说明:先计算表达式的值,如果非零,语句体就执行一 次;执行完毕再次计算表达式的值,如果仍然非零, 语句体就再执行一次;如此循环,直到表达式的值为 零。如果表达式的值总是非零,该循环将无休止地进 行(即死循环),程序设计时一定要避免。 第2章 MATLAB程序设计 四、for语句 for语句为计数循环语句,在许多情况下,循环条件是 有规律变化的,通常把循环条件初值、终值和变化步 长放在循环语句的开头,这种形式就是for语句的循环 结构。for循环的一般形式是: for 循环变量名=表达式1:表达式2:表达式3 语句体 end 说明:其中表达式1的值是循环变量的初值,表达式2 的值是
12、循环步长,表达式3的值是循环变量的终值。初 值、步长和终值可以取整数、小数、正数和负数,步 长可以缺省,缺省值为1。 第2章 MATLAB程序设计 2.2.5 循环的嵌套 如果一个循环结构的循环体又包括一个循环 结构就称为循环的嵌套,或称为多重循环。任 一种循环语句的循环体部分都可以包含另一个 循环语句,多重循环嵌套的层数可以是任意的。 习惯上按照嵌套层数,分别叫做二重循环、三 重循环等。处于内部的循环叫做内循环,处于 外部的循环叫做外循环。在设计多重循环时, 要特别注意内、外循环之间的关系,以及语句 放置次序,不要搞错。 第2章 MATLAB程序设计 六、其他语句 1continue语句 c
13、ontinue语句用于控制for循环或while循环跳过某些执行语句,当出现 continue语句时,则跳过循环体中所有剩余的语句,继续下一次循环,即 结束本次循环。 2break语句 break语句用于终止for循环和while循环的执行。当遇到break语句时,则退 出循环体,继续执行循环体外的下一个语句,即中止循环。在嵌套循环中, break往往存在于内层的循环中。 3try语句 MATLAB从5.2版开始提供了try语句,这是一种试探性执行语句。语句格 式为: try 语句组1 catch 语句组2 end 说明:先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将 错误信息赋
14、给保留的lasterr变量,并转去执行语句组2。这种试探性执行语 句是其他高级语言所没有的。 第2章 MATLAB程序设计 2.3 函数文件 一、基本结构一、基本结构 函数文件由function关键字引导,其基本结构为: function 输出形参表函数名(输入形参表) 注释说明部分 函数体语句 return 说明:以function开头的一行为引导行,表示该文件是一个函数 文件。函数名的命名规则与变量名相同。输入形参表是函数的输 入参数,可以有多个,用“逗号”来分隔;输出形参表为函数的 输出参数,当输出形参只有一个时,直接输入变量名而不用方括 号,多个输出形参用“逗号”来分隔。 注意:函数文
15、件编辑结束后,不能像注意:函数文件编辑结束后,不能像M文件那样单击文件那样单击F5或单或单 击击Debug Save and Run选项运行,而是要直接存盘。选项运行,而是要直接存盘。 第2章 MATLAB程序设计 (1)函数文件名 函数文件名通常由函数名再加上扩展名.m组成,不过函数文件名与 函数名也可以不相同。 (2)注释说明 注释说明包括以下三部分内容: 1)紧随函数文件定义行之后,以开头的第一行。这一行一般包括大 写的函数文件名和函数功能的简要描述,供lookfor关键词查询和 help在线帮助用。 2)第一行之后连续的注释行。通常包括函数输入、输出参数的含义及 调用格式说明等信息,构
16、成全部在线帮助文本。 3)与在线帮助文本相隔一个空行的注释行。包括函数文件编写和修改 的信息,如作者、修改日期、版本等内容,用于软件档案管理。 (3)return语句 如果在函数文件中插入了return语句,则执行到该语句就结束函数 的执行,程序流程转到调用该函数的位置。 第2章 MATLAB程序设计 二、函数调用 函数文件编制好后,就可以调用函数进行计算了。函数调用的一般 格式为: 输出实参表函数名(输入实参表) 需要注意的是,函数调用时各实参出现的顺序、个数,应与函数定 义时形参的顺序、个数一致,否则会出错。函数调用时,先将实 参传递给相应的形参,从而实现参数传递,然后再执行函数的功 能。
17、 三、参数的可调性 MATLAB在函数调用上有一个与一般高级语言不同之处,就是 函数所传递参数数目的可调性。凭借这一点,一个函数可完成多 种功能。在调用函数时,MATLAB用两个永久变量nargin和 nargout分别记录调用函数时的输入实参和输出实参的个数。只要 在函数文件中包含这两个变量,就可以准确地知道该函数文件被 调用时的输入输出参数个数,从而决定函数如何进行处理。 第2章 MATLAB程序设计 四、全局变量 全局变量的作用域是整个MATLAB工作空间,即全程 有效,所有的函数都可以对其进行存取和修改,因此 定义全局变量是函数间传递信息的一种手段。在函数 文件里,全局变量的定义语句应放在变量使用之前, 为了便于了解所有的全局变量,一般把全局变量的定 义语句放在文件的前部。定义全局变量的方法是使用 global函数,格式为: global 变量名 全局变量名多用大写字母,并有选择地以首次出现的 M文件的名字开头,这样,可把多个全局变量之间不 必要的互作用减至最小。 第2章 MATLAB程序设计 2.4 编程技巧 一、测定程序执行时间 测定程序执行时间通常是使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智研咨询-中国电源芯片设计行业市场调查、产业链全景、需求规模预测报告
- T∕GXAS 1090-2025 防虫网墙隔离栽培柑橘黄龙病绿色防控技术规程
- 高考护理实践考试题及答案
- 单招医学综合试题及答案
- 力的物质性理解试卷
- 公交公司停车场手动道闸防砸车雷达与下班锁闭安全防范措施
- 2026学年河北省邯郸市五年级数学期末自测模拟高频题(附答案)详细答案和解析
- 卫生院运营公司用电安全管理制度
- 旅行社购买合同范本
- 购买木材预约合同
- 2025云南文山市教育体育系统选调中学教师21人笔试备考题库及答案解析
- 矿石物流仓储管理方案(3篇)
- 产品封样管理办法
- 河南省安全生产职责清单
- 北京市北方交通大学附属中学2025届物理高一第二学期期末综合测试试题含解析
- 贵州省黔东南苗族侗族自治州从江县下江中学2024-2025学年度七年级下学期期末生物学试卷(文字版含答案)
- 新疆民丰县其其兰干砂金矿项目环评报告
- 物业防疫消毒管理制度
- 临床下肢深静脉血栓形成介入治疗护理
- 肺胀(慢阻肺)的中药治疗
- 压疮分期的试题及答案
评论
0/150
提交评论