M文件和面向对象编程.ppt
《M文件和面向对象编程.ppt》由会员分享,可在线阅读,更多相关《M文件和面向对象编程.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5、M文件和面向对象编程文件和面向对象编程6、符号计算、符号计算7、数值计算、数值计算M文件和面向对象编程文件和面向对象编程在在matlab窗口输入数据和命令进行计算时,当处理复窗口输入数据和命令进行计算时,当处理复杂问题和大量数据时是不方便的。杂问题和大量数据时是不方便的。命令行命令行方式程序可读性差,而且不能存储,对于复杂方式程序可读性差,而且不能存储,对于复杂的问题,应编写成能存储的程序文件。的问题,应编写成能存储的程序文件。1、指令驱动模式、指令驱动模式MATLAB的工作模式的工作模式将将matlab语句构成的程序存储成以语句构成的程序存储成以m为扩展名的文件,然为扩展名的文件,然后再
2、执行该程序文件,这种工作模式称为程序文件模式。后再执行该程序文件,这种工作模式称为程序文件模式。2、M文件模式文件模式M文件的创建文件的创建m文件的类型是普通的文本文件,我们可以使用系统认可的文件的类型是普通的文本文件,我们可以使用系统认可的文本文件编辑器来建立文本文件编辑器来建立m文件。如文件。如MATLAB下的下的m文件编辑文件编辑器、器、windows的记事本的记事本和和word等。等。注意:所创建的注意:所创建的m文件必须纳入文件必须纳入matlab搜索路径后,搜索路径后,才能在才能在matlab命令窗口运行。命令窗口运行。Matlab搜索路径的设置搜索路径的设置 matlab7.0
3、缺省路径是缺省路径是C:MATLAB701work 若创建的若创建的M文件放在新创建的目录下,可通过文件放在新创建的目录下,可通过MATLAB菜菜单单files/add path 进行路径的添加进行路径的添加M文件可以根据调用方式的不同分为两类:文件可以根据调用方式的不同分为两类:脚本文件脚本文件(命令文件命令文件)(Script File)函数文件函数文件(Function File)脚本文件:脚本文件:将原本要在将原本要在MATLAB环境下直接输入的多环境下直接输入的多条语句,存放为条语句,存放为.m后缀的文件,在命令行键入文件名,后缀的文件,在命令行键入文件名,替代多条语句,一次执行成批
4、命令。替代多条语句,一次执行成批命令。力学题力学题1:设目标相对于射点的高度为设目标相对于射点的高度为yf,给定初速,试计,给定初速,试计算物体在真空中飞行的时间和距离算物体在真空中飞行的时间和距离clear;y0=0;x0=0;%初始位置初始位置vMag=input(输入初始速度输入初始速度(m/s):);%输入初始速度输入初始速度vDir=input(输入初速方向输入初速方向(度度):);yf=input(输入目标高度输入目标高度(米米):);%输入目标高度输入目标高度vx0=vMag*cos(vDir*(pi/180);%计算计算x,y方向的初始速度方向的初始速度vy0=vMag*sin
5、(vDir*(pi/180);%wy=-9.81;wx=0;%重力加速度重力加速度(m/s2)tf=roots(wy/2,vy0,y0-yf);%解方程解方程wy*t2/2+vy0*t+y0=yh,计算落点,计算落点tftf=max(tf);%去除落点时间去除落点时间tf中的庸解中的庸解t=0:0.1:tf,tf;%设定时间数组,因设定时间数组,因tf不大可能被不大可能被0.1整除,必须加一个整除,必须加一个tf点点y=y0+vy0*t+wy*t.2/2;%计算轨迹计算轨迹x=x0+vx0*t+wx*t.2/2;xf=max(x),plot(x,y),grid%计算射程,画出轨迹计算射程,画出
6、轨迹M文件可以根据调用方式的不同分为两类:文件可以根据调用方式的不同分为两类:脚本文件脚本文件(命令文件命令文件)(Script File)函数文件函数文件(Function File)函数文件:函数文件:以固定格式书写的程序代码,以固定格式书写的程序代码,第一行是第一行是函数定义行函数定义行。和。和C语言,语言,Fortran等语言程序一样。等语言程序一样。脚本文件:脚本文件:将原本要在将原本要在MATLAB环境下直接输入的多环境下直接输入的多条语句,存放为条语句,存放为.m后缀的文件,在命令行键入文件名,后缀的文件,在命令行键入文件名,替代多条语句,一次执行成批命令。替代多条语句,一次执行
7、成批命令。matlab函数文件函数文件(1)matlab自定义的函数文件称内置函数文件自定义的函数文件称内置函数文件例:例:sin.m函数函数用用type指令显示其指令显示其m文件内容文件内容 type sin.m拥有大量内置数学函数拥有大量内置数学函数(2).用户定义函数用户定义函数m文件文件 需要输入变量,返回输出变量需要输入变量,返回输出变量 函数函数m文件的格式:文件的格式:function 返回变量返回变量=函数名函数名(输入变量输入变量)%注释说明语句段注释说明语句段 程序语句段程序语句段例、例、编写函数文件求半径为编写函数文件求半径为r的圆的面积和周长。的圆的面积和周长。func
8、tion s,p=fcircle(r)%calculate the area and perimeter of a%circle of radii r%r,s,p分别为圆的半径、面积以及周长分别为圆的半径、面积以及周长%2009年年11月月18日编日编s=pi*r*r;p=2*pi*r;1.函数函数m文件第一行必须以单词文件第一行必须以单词function作为引导词,表作为引导词,表示该示该M文件是一个函数文件,必须遵循如下形式:文件是一个函数文件,必须遵循如下形式:function 因变量因变量=函数名函数名(自变量自变量)2.函数名的命名规则与变量名相同,函数名的命名规则与变量名相同,m文
9、件的文件名必须文件的文件名必须是是 函数名函数名.m。3.输入形参为函数的输入参数,输出形参为函数的输出参输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。数。当输出形参多于一个时,则应该用方括号括起来。4.程序中的变量均为局部变量程序中的变量均为局部变量,不保存在工作空间中。,不保存在工作空间中。其变量只在函数运行期间有效。其变量只在函数运行期间有效。特定规则:特定规则:(4).函数函数m文件的调用文件的调用注意注意:函数调用时各实参出现的顺序、个数,应与函数函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。定义时
10、形参的顺序、个数一致,否则会出错。一般格式:一般格式:输出实参表输出实参表=函数名函数名(输入实参表输入实参表)函数调用时,先将实参传递给相应的形参,从而实函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。现参数传递,然后再执行函数的功能。MATLAB中,函数可以嵌套调用,即一个函数可以调用中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身。一个函数调用它自身称为别的函数,甚至调用它自身。一个函数调用它自身称为函数的递归调用。函数的递归调用。例、例、编写函数文件求半径为编写函数文件求半径为r的圆的面积和周长。的圆的面积和周长。function s,p=
11、fcircle(r)%calculate the area and perimeter of a%circle of radii r%r,s,p分别为圆的半径、面积以及周长分别为圆的半径、面积以及周长%2009年年11月月18日编日编s=pi*r*r;p=2*pi*r;保存成:保存成:fcircle.m调用:调用:fcircle(30)例、例、利用函数文件实现直角坐标利用函数文件实现直角坐标(x,y)与极坐标与极坐标(r,qr,q)之间的转换。之间的转换。1、建立函数文件、建立函数文件function rho,theta=tran(x,y)rho=sqrt(x*x+y*y);theta=ata
12、n(y/x);2、保存为、保存为 tran.m3、编写命令文件调用、编写命令文件调用tran.mx=input(Please input x=:);y=input(Please input y=:);rho,theta=tran(x,y);保存为:保存为:main1.m运行:运行:main1(5).函数文件的其他相关概念函数文件的其他相关概念(I)局部变量和全局变量:局部变量和全局变量:局部变量只存在于单个函数工作空间,局部变量只存在于单个函数工作空间,全局变量通过全局变量通过global定义,定义,格式为格式为 global 变量名。变量名。可穿行于不同函数工作空间,包括基本工作空间可穿行于
13、不同函数工作空间,包括基本工作空间workspace。值得指出的是:程序设计中,全局变量固然可带来某些值得指出的是:程序设计中,全局变量固然可带来某些方便,但却方便,但却破坏了函数对变量的封装,降低了程序的可破坏了函数对变量的封装,降低了程序的可读性和可靠性读性和可靠性;当设计程序较大,子函数较多时,全局变量给程序调试当设计程序较大,子函数较多时,全局变量给程序调试和维护带来不便,如果一定要用全局变量,要起一个特和维护带来不便,如果一定要用全局变量,要起一个特别的名字,以免误被修改别的名字,以免误被修改(II)函数参数的可调性函数参数的可调性 在调用函数时,在调用函数时,MATLAB用两个永久
14、变量用两个永久变量nargin和和nargout分分别记录调用该函数时的输入实参和输出实参的个数。别记录调用该函数时的输入实参和输出实参的个数。只要在函数文件中包含这两个变量,就可以准确地知道该函数只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进行处理。文件被调用时的输入输出参数个数,从而决定函数如何进行处理。x=1:3;y=1;2;3;charray(x)charray(x,y)charray(x,y,3)nargin用法示例用法示例函数文件函数文件charray.m:function fout=charray(a,b,c)if nar
15、gin=1 fout=a;elseif nargin=2 fout=a+b;elseif nargin=3 fout=(a*b*c)/2;end程序控制结构:选择结构、程序控制结构:选择结构、循环结构循环结构 1if语句语句if 条件条件1 语句组语句组1 elseif 条件条件2 语句组语句组2 elseif 条件条件n 语句组语句组n else 语句组语句组n+1end条件条件1 1否否是是语句组语句组1是是语句组语句组2条件条件2 2否否条件条件n n是是语句组语句组n语句组语句组n+1否否 switch 表达式表达式 case 表达式表达式1 语句组语句组1 case 表达式表达式2
16、语句组语句组2 case 表达式表达式m 语句组语句组m otherwise 语句组语句组n end2switch语句语句当表达式的值等于表达式当表达式的值等于表达式1的值的值时,执行语句组时,执行语句组1,当表达式的值等于表达式当表达式的值等于表达式2的值的值时,执行语句组时,执行语句组2,当表达式的值等于表达式当表达式的值等于表达式m的值的值时,执行语句组时,执行语句组m,当表达式的值不等于当表达式的值不等于case所列的所列的表达式的值时,执行语句组表达式的值时,执行语句组n。注:当任意一个分支的语句执行注:当任意一个分支的语句执行完后,直接执行完后,直接执行switch语句的下语句的下
17、一句。一句。例、某商场对顾客所购买的商品实行打折销售,标准如下例、某商场对顾客所购买的商品实行打折销售,标准如下(商品价商品价格用格用price来表示来表示):price200 没有折扣没有折扣200price500 3%折扣折扣500price1000 5%折扣折扣1000price2500 8%折扣折扣2500price5000 10%折扣折扣5000price 14%折扣折扣输入所售商品的价格,求其实际销售价格。输入所售商品的价格,求其实际销售价格。程序如下:程序如下:price=input(请输入商品价格请输入商品价格);switch fix(price/100)case 0,1%价格
18、小于价格小于200 rate=0;case 2,3,4%大于等于大于等于200但小于但小于500 rate=3/100;case num2cell(5:9)%大于等于大于等于500但小于但小于1k rate=5/100;case num2cell(10:24)%大于等于大于等于1k但小于但小于2.5k rate=8/100;case num2cell(25:49)%大于等于大于等于2.5k但小于但小于5k rate=10/100;otherwise%大于等于大于等于5k rate=14/100;endprice=price*(1-rate)%输出商品实际销售价格输出商品实际销售价格程序控制结构
19、:循环结构程序控制结构:循环结构 表达式表达式1的值为循环变量的初值,的值为循环变量的初值,表达式表达式2的值为步长,步长为的值为步长,步长为1时可省略时可省略,表达式表达式3的值为循环变量的终值。的值为循环变量的终值。1for语句语句for 循环变量循环变量=表达式表达式1:表达式表达式2:表达式表达式3 循环体语句循环体语句 end2while语句语句 while(条件条件)循环体语句循环体语句 end若条件成立,则执行循环体语句,若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果执行后再判断条件是否成立,如果不成立则跳出循环。不成立则跳出循环。3循环的嵌套循环的嵌套/多重循环结
20、构多重循环结构 如果一个循环结构的循环体又包括一个循环结构。如果一个循环结构的循环体又包括一个循环结构。y=0;for i=1:100y=y+1/(2*i-1);end例、例、当当n=100时,求时,求 的值。的值。程序如下程序如下:y=0;i=1;while isyms x y f=sin(x)+exp(y)指令修改指令修改:R=subs(S,old,new)s=sym(a)%a可以是数字,表达式等可以是数字,表达式等例:例:A=sym(a,2*b;3*a,0)A=a,2*b 3*a,0 注意:符号矩阵的每一行的两端都有方括号,这注意:符号矩阵的每一行的两端都有方括号,这是与是与 matla
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件 和面 对象 编程
限制150内