MATLAB建模与仿真应用教程第3版课件.pptx

上传人:牧羊曲112 文档编号:4219862 上传时间:2023-04-10 格式:PPTX 页数:28 大小:306.20KB
返回 下载 相关 举报
MATLAB建模与仿真应用教程第3版课件.pptx_第1页
第1页 / 共28页
MATLAB建模与仿真应用教程第3版课件.pptx_第2页
第2页 / 共28页
MATLAB建模与仿真应用教程第3版课件.pptx_第3页
第3页 / 共28页
MATLAB建模与仿真应用教程第3版课件.pptx_第4页
第4页 / 共28页
MATLAB建模与仿真应用教程第3版课件.pptx_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《MATLAB建模与仿真应用教程第3版课件.pptx》由会员分享,可在线阅读,更多相关《MATLAB建模与仿真应用教程第3版课件.pptx(28页珍藏版)》请在三一办公上搜索。

1、MATLAB建模与仿真应用教程,第3版,普通高等教育系列教材,刘德胜 赵魁 陈晓伟 等编著,MATLAB建模与仿真应用教程,5.1 M文件5.2 MATLAB的程序结构5.3 图形用户界面GUI的设计5.4 MATLAB程序设计的基本原则5.5 MATLAB程序设计实例,第5章 MATLAB的程序设计,MATLAB作为一种计算机高级语言,用户不但可以方便的在命令窗口中,以命令行的方式完成交互式操作,而且可以像其他计算机高级语言一样,具有条件选择语句、循环控制语句和图形用户界面(GUI)设计的能力,可以用来开发各种计算机程序。注:MATLAB是一种解释型语言。,第5章 MATLAB的程序设计,5

2、.1 M文件,5.1.1 M文件基础,由MATLAB的命令、条件选择语句、循环控制语句和函数构成的文本文件,以*.m为扩展名。,M文件的创建:1)在命令行窗口中直接输入“edit”命令;2)单击工具栏中的 按钮;3)主页 新建 脚本或函数命令。,2.M文件的打开:1)在命令行窗口中直接输入“edit+M文件名”;2)单击工具栏中的 按钮;3)主页 打开命令。,5.1 M文件,5.1.2 命令文件与函数文件,1.命令文件也称为批处理文件,由一系列的命令或函数组成,也可以包括条件选择语句和循环控制语句。和命令窗口相似,程序将按从上到下的顺序逐行执行,新创建的变量将保存在工作空间中,也可以调用工作空

3、间中已有的变量。命令文件结束后,这些变量仍然保存在工作控件中。命令文件不接受输入参数,也没有输出参数,只需要在命令窗口中输入“M文件名”即可运行。编写完成命令语句之后,点击工具栏中的“”图标,执行命令文件。,5.1 M文件,5.1.2 命令文件与函数文件,2.函数文件函数文件是以function语句开始,以end结束的M文件,可以接受输入参数并返回输出参数,将根据输入参数的不同而完成一定的功能。用户可以根据需要编制自己的函数文件,扩充MATLAB的功能。函数文件的定义格式:function 输出变量矩阵=函数名(输入变量矩阵)%帮助文本的第一行,总体上说明函数名和函数的功能%帮助文本,详细介绍

4、函数的功能和用法函数的程序代码%适当的注释end,5.1 M文件,5.1.2 命令文件与函数文件,2.函数文件【例5-2】已知一元二次方程,试编写程序,分别计算x=1,x=2,x=3时的值。,新建一个M函数文件,函数名为m5_2,输入如下的命令语句,以m5_2.m为文件名保存文件。function y=m5_2(x)%UNTITLED2 Summary of this function goes here%Detailed explanation goes herey=2*x2+5*x+10;end,编写完成命令语句之后,在命令窗口中调用m5_2函数 x1=1;y1=m5_2(x1)y1y1=

5、17,5.1 M文件,5.1.2 命令文件与函数文件,3.子函数和其它高级语言一样,在MATLAB中也可以定义子函数。所谓子函数,就是在同一个M文件中,第一个function所定义的函数为主函数,其它的函数就是子函数。子函数只能在所在的M文件中被调用。局部函数是指编译过的M文件存储在MATLAB下的private目录下的函数。与子函数不同的是,局部函数可以被private目录下的任意函数所调用。,5.2 MATLAB的程序结构,5.2.1 条件选择语句,MATLAB中没有表示“真和假”的布尔量,系统将根据逻辑运算式的值是否为零来判断,如果逻辑运算式的值不为零,则认为是“真”,执行if 的程序代

6、码;否则将跳过if结构。,1.if end 语句if 逻辑运算式程序代码end,2.if else end 语句if 逻辑运算式1程序代码1else程序代码2end,5.2 MATLAB的程序结构,5.2.1 条件选择语句,3.if elseif end 语句if 逻辑运算式1程序代码1Elseif 逻辑运算式2程序代码2Elseif 逻辑运算式n程序代码nelse程序代码n+1end,4.switch case end 语句switch 开关表达式case 表达式1程序代码1case 表达式2程序代码2case 表达式n程序代码notherwise程序代码n+1end,5.2 MATLAB的

7、程序结构,5.2.2 循环控制语句,1.for end循环for 循环次数变量=Initial:Increment:FinalValue程序代码end,function m,sum=m5_5(n)sum=0;m=1;for m=1:n sum=sum+m;m=m+1;end m=m-1;end,在命令窗口中输入:n=100;n,sum=m5_5(n)n=100sum=5050,5.2 MATLAB的程序结构,5.2.2 循环控制语句,2.while end循环while 条件表达式程序代码段end,function sum=m5_7(n)sum=0;m=1;while m=n sum=sum+

8、m;m=m+1;endend,在命令窗口中输入:n=100;sum=m5_7(n)sum=5050,5.2 MATLAB的程序结构,5.2.3 错误控制与循环终止,1.try catch语句,try程序代码1catch程序代码2end,首先执行try下面的程序代码1,如果没有错误,执行完成后跳出结构,执行end后面的程序;如果执行程序代码1的过程中出现错误,系统将捕获错误信息,存放在lasterr变量中,然后执行程序代码2。try-catch语句在调试程序非常有用。,5.2 MATLAB的程序结构,5.2.3 错误控制与循环终止,2.continue语句,continue语句用在for循环或w

9、hile循环结构中,与if语句相配合,用于跳过本次循环,即跳过continue语句后面的语句,直接进行下一次循环。在多层嵌套的循环结构中,continue语句仅跳过它所在层次的本次循环。,3.break语句,break语句用在for循环或while循环结构中,与if语句相配合,用于终止循环,即直接跳出循环。在多层嵌套的循环结构中,break语句仅终止它所在层次的循环。,5.2 MATLAB的程序结构,5.2.3 错误控制与循环终止,4.return语句,return语句用于终止函数的运行,与if语句相配合,直接返回到调用它的函数或MATLAB命令窗口。在MATLAB中,函数运行结束后会自动返回

10、到调用它的函数,而在程序代码中某处插入return语句,将根据if条件迫使程序提前结束,并返回到调用它的函数。,5.3 图形用户界面GUI的设计,5.3.1 GUI设计向导,空白GUI(Blank GUI)控制GUI(GUI with Uicontrols)图像与菜单GUI(GUI with Axes and Menu)对话框GUI(Model Question Dialog),5.3 图形用户界面GUI的设计,5.3.2 GUI控件,表5-1 MATLAB提供的GUI控件,5.3 图形用户界面GUI的设计,5.3.3 GUI设计工具,1.控件布局编辑器,5.3 图形用户界面GUI的设计,5.

11、3.3 GUI设计工具,2.属性检查器,3.菜单编辑器,5.3 图形用户界面GUI的设计,5.3.3 GUI设计工具,4.对齐对象,5.对象浏览器,5.4 MATLAB程序设计的基本原则,1MATLAB程序的基本组成如下:1)%命令行注释。2)采用clear、close命令清除工作空间的变量。3)定义变量,设置初始值。4)编写运算指令、调用函数或调用子程序。5)使用流程控制语句。6)直接在命令窗口中显示运算结果或者通过绘图命令显示运算结果。2一般情况下主程序开头习惯使用clear命令清除工作空间变量,然而子程序开头不要使用clear命令。,5.4 MATLAB程序设计的基本原则,3程序命名尽量

12、清晰,便于日后维护。4初始值尽量放在程序的前面,便于更改和查看。5如初始值较长或者较常用,可以通过编写子程序将所有的初始值进行存储,以便调用。6对于较大的程序设计,尽量将程序分解成每个具有独立功能的子程序,然后采用主程序调用子程序的方法进行编程。7充分地利用M文件编辑窗口里面的设置断点、单步执行和连续执行工具对程序进行调试。,5.3 MATLAB程序设计实例,5.5.1 M命令文件设计实例,【例5-9】猩猩吃香蕉问题:有一堆不知数目的香蕉,猩猩第一天吃掉一半,觉得没吃够,又多吃了一个。第二天依旧如此吃香蕉,即吃掉剩下香蕉的一半再加一个。以后天天如此,直至第十天早上发现只剩下一个香蕉了。问这堆香

13、蕉原来的数目和每天剩余香蕉的数目是多少?问题分析:此题初看起来感觉无从下手,其实这是一个典型的递推问题,即可以先假设第1天共有x1个香蕉,第2天剩余x2个香蕉,第9天剩余x9个,第10天剩余x10个。从题干中可以看出x10=1,而且可以看出 之间存在,即 的关系,其中。,5.3 MATLAB程序设计实例,5.5.1 M命令文件设计实例,%例5-9,猩猩吃香蕉问题%x=zeros(1,10);%1行10列的零矩阵,保存每天香蕉的数目x(10)=1;%给定初值,第10天还剩1个香蕉Total=0;%预设香蕉总数变量i=9;for n=i:-1:1%循环递推,计算每天的香蕉数目 x(n)=2*(x(

14、n+1)+1);end%end for nTotal=x(1)%输出这堆香蕉原来的数目x%输出每天剩余香蕉的数目,5.3 MATLAB程序设计实例,5.5.2 M函数文件设计实例,【例5-10】某商场对商品实行打折促销,具体标准如表5-3所示,试编写程序计算顾客的实际消费金额和所享受的折扣。,表5-3 促销折扣表,5.3 MATLAB程序设计实例,5.5.2 M函数文件设计实例,function sjxf,zk=m5_10(xf)%促销折扣计算函数%输入参数xf为顾客的消费金额;%输出参数sjxf为顾客的实际消费金额,zk为顾客享受的折扣switch fix(xf/100)case 0,1,2

15、 zk=0;case 3,4 zk=1/100;case 5,6,7 zk=3/100;case 8:14 zk=5/100;,case 15:29 zk=7/100;case 30:99 zk=9/100;otherwise zk=12/100;endsjxf=xf*(1-zk);%折扣后的实际消费金额end,5.3 MATLAB程序设计实例,5.5.3 GUI设计实例,应用程序的开发主要包括两个方面,首先是图形用户界面(GUI)的设计;然后是程序功能代码的编写。,【例5-11】设计一个简单的波形显示程序,用户输入正弦波的三要素(有效值、频率、初相位),点击“绘图“按钮,就可以在坐标轴控件上绘制正弦波曲线。,第5章 结束,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号