




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二讲MATLAB程序设计,MATLAB有两种工作方式:,交互式的命令行工作方式,M文件的程序工作方式,一.M文件,一.M文件,用MATLAB语言编写的程序,称为M文件。M文件有两类:命令文件和函数文件。命令文件:没有输入参数,也不返回输出参数。函数文件:可以输入参数,也可返回输出参数。,M文件的建立与编辑,建立新的M文件:从MATLAB命令窗口的File菜单中选择New菜单项,再选择M-file命令。,一.M文件,编辑已有的M文件:从MATLAB命令窗口的Flie菜单中选择OpenM-file命令。,命令文件,将需要运行的命令编辑到一个命令文件中,然后在MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。【例1】建立一个命令文件将变量a,b的值互换。,一.M文件,e31m文件:a=1:9;b=11,12,13;14,15,16;17,18,19;c=a;a=b;b=c;ab在MATLAB的命令窗口中输入e31,将会执行该命令文件。,二数据的输入输出,1.input函数:用于向计算机输入一个参数。调用格式:A=input(提示信息,选项);注:s选项,则允许用户输入一个字符串。例如想输入一个人的姓名,可采用命令xm=input(Whatsyourname:,s)【例2】求一元二次方程a2+bx+c=0的根。,二数据的输入输出,a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a)将该程序以aa.m文件存盘,然后运行aa.m文件。,2pause函数:暂停程序的执行。调用格式:pause(延迟秒数)注:如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。,二数据的输入输出,3disp函数:命令窗口输出函数。调用格式:disp(输出项)注:输出项为字符串或矩阵。例如A=Hello,MATLAB;disp(A)输出为:Hello,MATLAB,三程序设计,(一)选择结构,选择结构的语句有if语句和switch语句。1if语句格式一:if条件语句组end,三程序设计,格式二:if条件语句组1else语句组2end,(一)选择结构,格式三:if条件1语句组1elseif条件2语句组2elseif条件m语句组melse语句组m+1end,三程序设计,【例4】输入三角形的三条边,求面积。,A=input(请输入三角形的三条边:);ifA(1)+A(2)A(3)elsedisp(不能构成一个三角形。)end运行:请输入三角形的三条边:4569.9216,三程序设计,(一)选择结构,【例5】输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为其他字符则原样输出。,c=input(,s);ifc=Aend,三程序设计,(一)选择结构,2switch语句,switch语句根据变量或表达式的取值不同,分别执行不同的语句。其格式为:switch表达式case值1语句组1case值2,语句组2case值m语句组motherwise语句组m+1end,三程序设计,(一)选择结构,【例6】根据变量num的值来决定显示的内容。,num=input(请输入一个数);switchnumcase-1disp(Iamateacher.);case0disp(Iamastudent.);case1disp(Youareateacher.);otherwisedisp(Youareastudent.);end,三程序设计,(一)选择结构,(二)循环结构,实现循环结构的语句:for语句和while语句。1for语句:格式:for循环变量=表达式1:表达式2:表达式3循环体语句end注:其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。,三程序设计,2while语句格式为:while(条件)循环体语句end【例7】根据例3.6中求y的表达式,求:(1)y3break;endi=i+1;endn=i-1y=y-f,三程序设计,(二)循环结构,3循环的嵌套,如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。多重循环的嵌套层数可以是任意的。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。,三程序设计,(二)循环结构,【例8】求100,1000以内的全部素数。,n=0;form=100:1000flag=1;j=m-1;i=2;whilei=jend,i=i+1;endifflagn=n+1;prime(n)=m;endendprime%变量prime存放素数,三程序设计,(二)循环结构,四函数文件,函数文件是另一种形式的M文件,每一个函数文件都定义一个函数。事实上,MATLAB提供的标准函数大部分都是由函数文件定义的。,四.函数文件,1函数文件格式,函数文件由function语句引导,其格式为:function输出形参表=函数名(输入形参表)注释说明部分函数体注:其中函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于1个时,则应该用方括号括起来。,【例9】编写函数文件求小于任意自然数n的Fibonacci数列各项。,functionf=ffib(n)%用于求Fibonacci数列的函数文件%f=ffib(n)%1999年9月30日编f=1,1;i=1;whilef(i)+f(i+1)nf(i+2)=f(i)+f(i+1);i=i+1;end,将以上函数文件以文件名ffib.m存盘,然后在MATLAB命令窗口输入以下命令,可求小于2000的Fibonacci数。ffib(2000),四.函数文件,2函数调用,函数文件编制好后,就可调用函数进行计算了。如上面定义ffib函数后,调用它求小于2000的Fibonacci数。函数调用的一般格式是:输出实参表=函数名(输入实参表),四.函数文件,【例10】利用函数文件,实现直角坐标(x,y)与极坐标(,)之间的转换。,函数文件tran.m:functiongama,theta=tran(x,y)gama=sqrt(x*x+y*y);theta=atan(y/x);调用tran.m的命令文件main1.m:x=input(Pleaseinputx=:);y=input(Pleaseinputy=:);gam,the=tran(x,y);gamthe,已知转换公式为:极坐标的矢径:=极坐标的幅角:=,四.函数文件,【例11】利用函数的递归调用,求n!。,functionf=factor(n)ifn=1f=1;elsef=factor(n-1)*n;endreturn;%返回在命令文件main2.m中调用函数文件factor.m:fori=1:10fac(i)=factor(i);endfac,程序运行结果是:fac=Columns1through612624120720Columns7through10504403203628803628800,四.函数文件,3函数所传递参数的可调性,MATLAB在函数调用上有一个与众不同之处:函数所传递参数数目的可调性。凭借这一点,一个函数可完成多种功能。在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进行处理。,四.函数文件,【例12】nargin用法示例,函数文件examp.m:functionfout=charray(a,b,c)ifnargin=1fout=a;elseifnargin=2fout=a+b;elseifnargin=3fout=(a*b*c)/2;end,命令文件mydemo.m:x=1:3;y=1;2;3;examp(x)examp(x,y)examp(x,y,3),执行mydemo.m后的输出是:ans=123ans=246ans=21,四.函数文件,五全局变量和局部变量,在MATLAB中,全局变量用命令global定义。函数文件的内部变量是局部的,与其他函数文件及MATLAB工作空间相互隔离。但是,如果在若干函数中,都把某一变量定义为全局变量,那么这些函数将公用这一个变量。全局变量的作用域是整个MATLAB工作空间,即全程有效。所有的函数都可以对它进行存取和修改。因此,定义全局变量是函数间传递信息的一种手段。,四.函数文件,【例13】全局变量应用示例,先建立函数文件wadd.m,该函数将输入的参数加权相加。functionf=wadd(x,y)%addtwovariableglobalALPHABETAf=ALPHA*x+BETA*y;,在命令窗口中输入:globalALPHABETAALPHA=1;BETA=2;s=wadd(1,2)输出为:s=5,习题,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年新疆克州州直机关遴选公务员事业单位选聘工作人员考试真题
- 2024年贵州六枝特区招聘事业单位工作人员考试真题
- 威尼斯小艇的课件课
- 工业安全技术员知识培训课件
- 平面向量的加法课件
- FGGH-生命科学试剂-MCE
- exo-α-1-2-3-Mannosidases-Bacteroides-thetaiotaomicron-生命科学试剂-MCE
- 滨州事业单位笔试真题2025
- 夷陵区安全管理培训课件
- 环保产业园2025年循环经济发展模式下的可持续发展战略报告
- 人工智能与虚拟现实技术的融合应用
- UL508标准中文版-2018工控产品UL中文版标准
- GB/Z 37551.102-2024海洋能波浪能、潮流能及其他水流能转换装置第102部分:用已有运行测量数据评估波浪能转换装置在另一布放地点的发电性能
- 电力线路常见故障培训
- 新质生产力:未来经济发展的重要引擎
- 机油化学品安全技术(MSDS)说明书
- 一年级开学家长会 课件
- 第4课 用联系的观点看问题 第一框
- 2024版万达商业广场管理合同书模板
- 胖东来运营管理-管理人员规划
- 婴幼儿常见睡眠问题及对策
评论
0/150
提交评论