好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MATLAB建模与仿真应用程序-第5章-MATLAB的程序设计.pptx

28页
  • 卖家[上传人]:sat****105
  • 文档编号:325923278
  • 上传时间:2022-07-20
  • 文档格式:PPTX
  • 文档大小:343.19KB
  • / 28 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • MATLAB建模与仿真应用教程建模与仿真应用教程第3版普通高等教育系列教材MATLAB建模与仿真应用教程5.1M文件5.2MATLAB的程序结构5.3图形用户界面GUI的设计5.4MATLAB程序设计的基本原则5.5MATLAB程序设计实例第5章MATLAB的程序设计MATLAB作为一种计算机高级语言,用户不但可以方便的在命令窗口中,以命令行的方式完成交互式操作,而且可以像其他计算机高级语言一样,具有条件选择语句、循环控制语句和图形用户界面(GUI)设计的能力,可以用来开发各种计算机程序注:MATLAB是一种解释型语言第5章MATLAB的程序设计5.1M文件5.1.1M文件基础由MATLAB的命令、条件选择语句、循环控制语句和函数构成的文本文件,以*.m为扩展名1.M文件的创建:1)在命令行窗口中直接输入“edit”命令;2)单击工具栏中的按钮;3)主页新建脚本或函数命令2.M文件的打开:1)在命令行窗口中直接输入“edit+M文件名”;2)单击工具栏中的按钮;3)主页打开命令5.1M文件5.1.2命令文件与函数文件1.命令文件也称为批处理文件,由一系列的命令或函数组成,也可以包括条件选择语句和循环控制语句。

      和命令窗口相似,程序将按从上到下的顺序逐行执行,新创建的变量将保存在工作空间中,也可以调用工作空间中已有的变量命令文件结束后,这些变量仍然保存在工作控件中命令文件不接受输入参数,也没有输出参数,只需要在命令窗口中输入“M文件名”即可运行编写完成命令语句之后,点击工具栏中的“”图标,执行命令文件5.1M文件5.1.2命令文件与函数文件2.函数文件函数文件是以function语句开始,以end结束的M文件,可以接受输入参数并返回输出参数,将根据输入参数的不同而完成一定的功能用户可以根据需要编制自己的函数文件,扩充MATLAB的功能函数文件的定义格式:function输出变量矩阵=函数名(输入变量矩阵)%帮助文本的第一行,总体上说明函数名和函数的功能%帮助文本,详细介绍函数的功能和用法函数的程序代码%适当的注释end5.1M文件5.1.2命令文件与函数文件2.函数文件【例5-2】已知一元二次方程,试编写程序,分别计算x=1,x=2,x=3时的值新建一个M函数文件,函数名为m5_2,输入如下的命令语句,以m5_2.m为文件名保存文件functiony=m5_2(x)%UNTITLED2Summaryofthisfunctiongoeshere%Detailedexplanationgoesherey=2*x2+5*x+10;end编写完成命令语句之后,在命令窗口中调用m5_2函数x1=1;y1=m5_2(x1)y1y1=175.1M文件5.1.2命令文件与函数文件3.子函数和其它高级语言一样,在MATLAB中也可以定义子函数。

      所谓子函数,就是在同一个M文件中,第一个function所定义的函数为主函数,其它的函数就是子函数子函数只能在所在的M文件中被调用局部函数是指编译过的M文件存储在MATLAB下的private目录下的函数与子函数不同的是,局部函数可以被private目录下的任意函数所调用5.2MATLAB的程序结构5.2.1条件选择语句MATLAB中没有表示“真和假”的布尔量,系统将根据逻辑运算式的值是否为零来判断,如果逻辑运算式的值不为零,则认为是“真”,执行if的程序代码;否则将跳过if结构1.ifend语句if逻辑运算式程序代码end2.ifelseend语句if逻辑运算式1程序代码1else程序代码2end5.2MATLAB的程序结构5.2.1条件选择语句3.ifelseifend语句if逻辑运算式1程序代码1Elseif逻辑运算式2程序代码2Elseif逻辑运算式n程序代码nelse程序代码n+1end4.switchcaseend语句switch开关表达式case表达式1程序代码1case表达式2程序代码2case表达式n程序代码notherwise程序代码n+1end5.2MATLAB的程序结构5.2.2循环控制语句1.forend循环for循环次数变量=Initial:Increment:FinalValue程序代码endfunctionm,sum=m5_5(n)sum=0;m=1;form=1:nsum=sum+m;m=m+1;endm=m-1;end在命令窗口中输入:n=100;n,sum=m5_5(n)n=100sum=50505.2MATLAB的程序结构5.2.2循环控制语句2.whileend循环while条件表达式程序代码段endfunctionsum=m5_7(n)sum=0;m=1;whilemn=100;sum=m5_7(n)sum=50505.2MATLAB的程序结构5.2.3错误控制与循环终止1.trycatch语句try程序代码1catch程序代码2end首先执行try下面的程序代码1,如果没有错误,执行完成后跳出结构,执行end后面的程序;如果执行程序代码1的过程中出现错误,系统将捕获错误信息,存放在lasterr变量中,然后执行程序代码2。

      try-catch语句在调试程序非常有用5.2MATLAB的程序结构5.2.3错误控制与循环终止2.continue语句continue语句用在for循环或while循环结构中,与if语句相配合,用于跳过本次循环,即跳过continue语句后面的语句,直接进行下一次循环在多层嵌套的循环结构中,continue语句仅跳过它所在层次的本次循环3.break语句break语句用在for循环或while循环结构中,与if语句相配合,用于终止循环,即直接跳出循环在多层嵌套的循环结构中,break语句仅终止它所在层次的循环5.2MATLAB的程序结构5.2.3错误控制与循环终止4.return语句return语句用于终止函数的运行,与if语句相配合,直接返回到调用它的函数或MATLAB命令窗口在MATLAB中,函数运行结束后会自动返回到调用它的函数,而在程序代码中某处插入return语句,将根据if条件迫使程序提前结束,并返回到调用它的函数5.3图形用户界面GUI的设计5.3.1GUI设计向导空白GUI(BlankGUI)控制GUI(GUIwithUicontrols)图像与菜单GUI(GUIwithAxesandMenu)对话框GUI(ModelQuestionDialog)5.3图形用户界面GUI的设计5.3.2GUI控件表5-1MATLAB提供的GUI控件图标对应功能图标对应功能图标对应功能普通按钮滚动条切换按钮单选按钮复选框ActiveX控件静态文本可编辑文本面板列表框弹出式菜单选择表格坐标轴Axes坐标轴5.3图形用户界面GUI的设计5.3.3GUI设计工具1.控件布局编辑器5.3图形用户界面GUI的设计5.3.3GUI设计工具2.属性检查器3.菜单编辑器5.3图形用户界面GUI的设计5.3.3GUI设计工具4.对齐对象5.对象浏览器5.4MATLAB程序设计的基本原则1MATLAB程序的基本组成如下:1)%命令行注释。

      2)采用clear、close命令清除工作空间的变量3)定义变量,设置初始值4)编写运算指令、调用函数或调用子程序5)使用流程控制语句6)直接在命令窗口中显示运算结果或者通过绘图命令显示运算结果2一般情况下主程序开头习惯使用clear命令清除工作空间变量,然而子程序开头不要使用clear命令5.4MATLAB程序设计的基本原则3程序命名尽量清晰,便于日后维护4初始值尽量放在程序的前面,便于更改和查看5如初始值较长或者较常用,可以通过编写子程序将所有的初始值进行存储,以便调用6对于较大的程序设计,尽量将程序分解成每个具有独立功能的子程序,然后采用主程序调用子程序的方法进行编程7充分地利用M文件编辑窗口里面的设置断点、单步执行和连续执行工具对程序进行调试5.3MATLAB程序设计实例5.5.1M命令文件设计实例【例5-9】猩猩吃香蕉问题:有一堆不知数目的香蕉,猩猩第一天吃掉一半,觉得没吃够,又多吃了一个第二天依旧如此吃香蕉,即吃掉剩下香蕉的一半再加一个以后天天如此,直至第十天早上发现只剩下一个香蕉了问这堆香蕉原来的数目和每天剩余香蕉的数目是多少?问题分析:此题初看起来感觉无从下手,其实这是一个典型的递推问题,即可以先假设第1天共有x1个香蕉,第2天剩余x2个香蕉,第9天剩余x9个,第10天剩余x10个。

      从题干中可以看出x10=1,而且可以看出之间存在,即的关系,其中5.3MATLAB程序设计实例5.5.1M命令文件设计实例%例5-9,猩猩吃香蕉问题%x=zeros(1,10);%1行10列的零矩阵,保存每天香蕉的数目x(10)=1;%给定初值,第10天还剩1个香蕉Total=0;%预设香蕉总数变量i=9;forn=i:-1:1%循环递推,计算每天的香蕉数目x(n)=2*(x(n+1)+1);end%endfornTotal=x(1)%输出这堆香蕉原来的数目x%输出每天剩余香蕉的数目5.3MATLAB程序设计实例5.5.2M函数文件设计实例【例5-10】某商场对商品实行打折促销,具体标准如表5-3所示,试编写程序计算顾客的实际消费金额和所享受的折扣消费额度消费额度折扣折扣若总消费小于300元无折扣若总消费大于等于300元,并小于500元1%折扣若总消费大于等于500元,并小于800元3%折扣若总消费大于等于800元,并小于1500元5%折扣若总消费大于等于1500元,并小于3000元7%折扣若总消费大于等于3000元,并小于10000元9%折扣若总消费大于10000元12%折扣表5-3促销折扣表5.3MATLAB程序设计实例5.5.2M函数文件设计实例functionsjxf,zk=m5_10(xf)%促销折扣计算函数%输入参数xf为顾客的消费金额;%输出参数sjxf为顾客的实际消费金额,zk为顾客享受的折扣switchfix(xf/100)case0,1,2zk=0;case3,4zk=1/100;case5,6,7zk=3/100;case8:14zk=5/100;case15:29zk=7/100;case30:99zk=9/100;otherwisezk=12/100;endsjxf=xf*(1-zk);%折扣后的实际消费金额end5.3MATLAB程序设计实例5.5.3GUI设计实例应用程序的开发主要包括两个方面,首先是图形用户界面(GUI)的设计;然后是程序功能代码的编写。

      例5-11】设计一个简单的波形显示程序,用户输入正弦波的三要素(有效值、频率、初相位),点击“绘图“按钮,就可以在坐标轴控件上绘制正弦波曲线第5章结束。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.