首页 MATLAB经典教程。第五章-程序设计ppt课件

MATLAB经典教程。第五章-程序设计ppt课件

举报
开通vip

MATLAB经典教程。第五章-程序设计ppt课件第五章程序设计 流程控制 函数 文件.5.0概述MATLAB作为一种高级计算语言,不仅可以做:a)数值计算;b)符号计算;c)绘图;…还可以像basic,fortran,c等其它高级计算机语言一样进行程序设计,即编制以m为扩展名的文本文件(简称M文件)。.概述M语言:MATLAB提供了完整的编写应用程序的能力,这种能力通过一种被称为M语言的高级语言来实现。解释型语言M文件:一个M语言文件就是由若干MATLAB的命令组合在一起构成的,这些命令都是在前面章节中介绍的合法的MATLAB命令。其文件的扩展名为...

MATLAB经典教程。第五章-程序设计ppt课件
第五章程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 流程控制 函数 文件.5.0概述MATLAB作为一种高级计算语言,不仅可以做:a)数值计算;b)符号计算;c)绘图;…还可以像basic,fortran,c等其它高级计算机语言一样进行程序设计,即编制以m为扩展名的文本文件(简称M文件)。.概述M语言:MATLAB提供了完整的编写应用程序的能力,这种能力通过一种被称为M语言的高级语言来实现。解释型语言M文件:一个M语言文件就是由若干MATLAB的命令组合在一起构成的,这些命令都是在前面章节中介绍的合法的MATLAB命令。其文件的扩展名为.m。2种形式:命令式、函数式;前者是命令行的简单叠加;后者则用以解决参数传递和函数调用的问题。.概述(函数)内建函数:(Build-in)函数,这类函数是由MATLAB的内核提供的,能够完成基本的运算,例如三角函数、矩阵运算的函数等。(应该是有经过优化的,运算速度比较快。)高级语言开发的函数:用户自己开发的函数,由此基础上可以构成专用领域的toolbox,或者针对某个具体任务的application。.meditor:为了方便编辑M文件,MATLAB也提供了一个编辑器,叫作meditor,它也是系统默认的M文件编辑器。*.m文件是文本文件,所以任何一个文本编辑器都可以编辑它。note:一个完成的集成开发环境(IDE)应该包括编辑、编译、调试等功能。Meditor提供了编辑、调试的功能。因为它是解释性语言,因此一般的m文件不经过编译环节。.流程控制流程控制:语句的组合方式。组合的结构:1)顺序结构;2)选择结构;3)循环结构。程序的任何逻辑都可以由这三种结构组成。.5.1流程控制 例子1:有如下迭代 公式 小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载 :其中 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示第k时刻的数值,表示第k+1时刻的数值。参数设置如下:a=2,b=2.5,初始值[x0,y0]设置为小的随机数值,迭代5000~20000次,绘制对应的图形(x为横轴,y为纵轴,每个点对(x,y)用一个红色点来表示),观察绘制得到的图像。.5.1流程控制例子:(exam4_1.m)(演示)x0=rand(1);y0=rand(1);xs=x0;ys=y0;a=2;b=2.5;fori=1:10000xs(i+1)=a*ys(i)*sin(xs(i));ys(i+1)=abs(xs(i))-b;endplot(xs,ys,'r.');return;.5.1流程控制 上述的例子就是一个典型的循环控制的例子。循环控制对应的语句包括了: 1)for2)while.5.1流程控制1)forfor循环的一般形式是:forx=array语句enda)在for和end语句之间的语句按数组中的每一列执行一次。b)在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)。.循环结构(while与for)1)for语句例子:for语句的例子说明:1)for语句的语法,与c语言是不一样的;forindex=start:increment:end 2)continue的语法、作用–结束本次循环3)break的语法、作用–提前结束循环.试比较:s=0;forp=1:5if(p==4)break;end;s=s+p;end;s运行结果为6s=0;forp=1:5if(p==4)continue;end;s=s+p;end;s运行结果为11.5.1流程控制1)forc)在For循环内接受任何有效的MATLAB数组。例子2:data=[39456;716-15];forn=datax=n(1)-n(2);disp(x);end输出什么?.5.1流程控制1)ford)for循环可按需要嵌套例子3:公元前五世纪我国古代数学家张丘建在《算经》一 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?如何编程实现?.5.1流程控制(exam4_3.m)forx=0:19fory=0:33forz=0:100if(x+y+z==100)&(5*x+3*y+z/3==100)d=[x,y,z]endendendend.5.1流程控制2)whilewhile语句的一般形式是:while条件语句endnote:end的用法;.while循环–当型循环语法:whileexpression%表达式为真执行循环,否则退出循环statementsend;break与continue仍然可以使用,如下例:s=0;p=1;while(p<=5)if(p==4)break;end;s=s+p;p=p+1;end;s.5.1流程控制 另外一种常用的流程控制是分支控制。分支控制常用的语句为:1)if2)switchif、switch的语法格式详见 教材 民兵爆破地雷教材pdf初中剪纸校本课程教材衍纸校本课程教材排球校本教材中国舞蹈家协会第四版四级教材 -P175。note:1)end;2)switch语句中break的用法;.选择结构(if与switch)1)if语句例子:if语句的程序说明:多出end,与c语言不同;2)switch语句例子:switch语句的例子说明:不用‘break’;..Matlab的switch–case语句可以直接处理字符串,这比其他高级程序设计语言要方便。如下面的语句:switchlower(Name)case'Liu'salary=salary+100;case'Zhang'salary=salary+200;case'Ma'salary=salary+200;otherwisesalary=salary+50;end;.5.1流程控制 分支控制:例子:编写分段函数f(x)=x,(-1=<x<0);f(x)=x^2,(0<=x<=1)。functiony=fun_f(x)?return;.5.1流程控制 还有一样最常用的流程是:顺序执行。小结:1)基本的流程包括:顺序、分支、循环;2)任何复杂功能的matlab程序实现,其流程就是这3种。3)难点不在流程语句本身,而在于对一个问题选择一个合适的流程,将流程与其他编程元素结合起来。.5.2函数M语言的层次(从底层到高层)构成:1)变量与常量:标量、向量、矩阵、结构等2)语句:运算命令+变量或常量的组合3)函数:若干语句的组合4)文件:函数、语句的组合5)目录:若干文件的组合Note:函数是编程语言中的一个核心元素。.5.2函数1)函数的语法格式:function[out1,out2,…]=fun(in1,in2,…)函数名:fun输入变量:in1,in2,…等输出变量:out1,out2,…note:1)注意[]、()的区别。2)函数的命名与变量的命名最好能反映其“语义”。.5.2函数例子5:编写一个函数,计算第n个Fibonnaci数(CalFib.m)functiony=CalFib(n)%计算Fibonnaci数%n--数列中的位置%y--对应位置上的数值;ifn>2y=CalFib(n-1)+CalFib(n-2);%y(i)=y(i-1)+y(i-2);elsey=1;endreturn;.5.2函数例子:note:1)matlab支持递归函数;2)函数文件的名称与主函数名保持一致;3)注意注释的添加。.5.2函数 函数调用:例子6:用函数的方式重新实现例1。在以下代码中填入正确的语句。.5.2函数 函数调用:functionexam4_6x0=rand(1);y0=rand(1);xs=x0;ys=y0;fori=1:10000??endplot(xs,ys,'r.');return;.5.2函数 函数调用:%-------------------function[x1,y1]=iter(x0,y0)%迭代方程a=2;b=2.5;??return;.5.2函数 1)对于函数的调用者而言,函数就可以认为是一个“黑箱”,有输入输出,但是具体如何实现则不可见。 2)接口问题:函数与其调用者信息传递的方式。在matlab、c等编程语言中,通过输入变量、输出变量来实现信息传递。3)输入变量:函数的入口数据,由函数的调用者传入;输出变量:函数的出口数据,传递给函数的调用者。4)函数的执行过程中,相关变量的生存周期是怎样的?内存空间的创建与销毁。.5.2函数 函数调用:1)主函数中的x0,y0与子函数iter中的x0,y0有何关系?2)如果将iter的输出变量改为[xs,ys],可以吗?程序如何改写?3)如果将xs、ys改为全局变量,不通过输入参量进行信息传递,iter函数如何改写?.5.2函数 全局变量:1)定义:globalvar1var2例子7:用全局函数实现例1.(exam4_7.m).5.2函数 全局变量:functionexam3_7globalxsysx0=rand(1);y0=rand(1);xs=x0;ys=y0;fori=1:10000iter;end.5.2函数 全局变量:functioniterglobalxsysa=2;b=2.5;x0=xs(end);y0=ys(end);x1=a*y0*sin(x0);y1=abs(x0)-b;xs(end+1)=x1;ys(end+1)=y1;return;.5.2函数 nargin/nargout(控制输入/输出变量个数):例子8:写一个函数,该函数会根据输入/输出参数的个数而调整功能:1)1输入/1输出:直接输出;2)2输入/2输出:直接输出;3)1输入/2输出:输出对应的实部/虚部;4)2输入/1输出:对实部/虚部整合成一个输出。补充:1)real(x)/imag(x):获取x的实部/虚部2)nargin/nargout:输入/输出变量的个数。.5.2函数 nargin/nargout:例子8:function[y1,y2]=exam4_8(x1,x2)ifnargin==1ifnargout==1y1=x1;elsey1=real(x1);y2=imag(x1);endelse.5.2函数 nargin/nargout:例子8:ifnargout==1y1=x1+x2*i;elsey1=x1;y2=x2;endendreturn;.5.2函数 varargin/varargout(不定数目输入/输出变量):将全部参数存储于一个元胞数组中。如此,接口可以更灵活。相关内容详见教材。扩展:1)c++中,可以定义函数名相同,但输入/输出变量不同的多个函数;2)c++的“多态”。.5.2函数 几个问题: 1)什么是函数?若干条有内在关联的语句的组合,构成了函数。2)函数有什么用?增加程序的可读性、精简代码、层次感。3)函数定义的语法格式?4)什么是函数的输入输出参数?.5.3函数文件M文件分为两类:1)脚本文件。2)函数文件。脚本文件:由一系列的MATLAB指令和命令组成的纯文本格式的M文件。脚本文件没有输入参数,也没有输出参数,执行起来就像早期的DOS操作系统的批处理文件一样。note:1)只有在函数文件中可以定义函数,在脚本文件中不能定义子函数;2)函数文件的命名注意与主函数名保持一致。.函数文件函数文件的格式M语言函数文件具有下面的不同部分:*函数定义行。*在线帮助。(命令行上输入helpIsPerfectNumber)*注释行。(函数主体代码中的注释)*M语言代码。例子:function[y1,y2]=average(x1,x2).函数文件函数文件的格式例子:将计算完数的命令行式脚本文件改写为函数。说明:1)函数定义格式;2)注释:功能说明,输入-输出格式说明;3)test测试:针对比较复杂,容易错误的情况4)输出参数的形式与c语言是不一样的;5)可以有多个输出参数;当然也可以把多个输出参数打包封装。.函数文件子函数说明:1)同一个M函数文件中可以包含多个函数。2)出现在文件中的第一个M函数称为主函数(primaryfunction);3)其余的函数称为子函数(subfunction);4)M函数文件的名称一般与主函数的名称保持一致。(!!!)5)子函数的作用范围:只能被同一文件的函数(包括主函数和其他子函数)调用。.说明:1)子函数一般是比较简单的、无复用的代码段;2)比较复杂的代码,往往写在另外一个文件中去;3)复用性比较高的代码,往往也单独给出一个文件。.局部变量与全局变量局部变量:在M函数内部声明并使用的变量。这些变量仅能在函数调用执行期间被使用,一旦函数结束运行,则这些变量占用的内存空间将自动被释放。工作空间:MATLAB的解释器在解释执行函数的时候,为不同的函数创建不同的工作空间,函数彼此的工作空间相互独立,一旦函数执行完毕,则函数的工作空间就不存在了。.局部变量与全局变量命令式脚本文件中的变量为全局变量。函数中默认均为局部变量,但可以用global申明全局变量。说明:1)执行到某个函数,实际上就进入了对应的工作空间中去;2)不同的函数,其工作空间是互不可见的;3)函数的输入、输出参数提供了一种信息交互的方式;4)全局变量也提供了另外一种信息交互的方式。.函数执行规则当用户键入一条命令或者执行M语言文件中包含的一条语句或者指令时,MATLAB解释器就负责解析用户的输入,并且给出相应的答案。MATLAB解释器解析命令按照一定优先级进行。优先级:*首先判断输入的命令是否为变量。*若不是内存中的变量,判断输入的命令是否为MATLAB的内建函数。*若不是内建函数,则判断输入的命令是否为子函数。.函数执行规则*若不是子函数,则判断输入的命令是否为私有函数。*若不是私有函数,则判断输入的命令是否为MATLAB搜索路径中所包含的某个文件或函数。*若在同一个路径下发现同名的三种类型的文件MEX文件、P代码文件和M代码文件,则优先执行MEX文件,其次是P代码文件,最后执行的是M语言文件。.5.4几条特殊语句1)input:等待用户输出。2)disp:显示变量;3)pause:动画中曾用到。Note:常用disp显示程序的最终结果数据或关键的中间变量数值。例子9:(exam4_9)num=input('thenumberofstudentis:');disp('thenumberofstudentis:');disp(num);.
本文档为【MATLAB经典教程。第五章-程序设计ppt课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
爱赢
公司经营范围:网络软件设计、制作、图文设计、影视制作(编辑)
格式:ppt
大小:302KB
软件:PowerPoint
页数:0
分类:教育学
上传时间:2020-11-07
浏览量:2