版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB编程1 M文件2程序控制结构3功能文件4程序实例5程序调试3.1 M文件3.1.1 M文件概述该程序用MATLAB语言编写,称为M文件。根据不同的调用方法,m文件可以分为两种类型:脚本文件和函数文件。在示例3-1中,创建了一个命令文件和一个函数文件来将华氏温度转换为摄氏温度。%清除工作空间中的变量f=input(输入华氏温度:);C=5*(f-32)/9,然后在MATLAB的命令窗口中输入f2c,命令文件将被执行,执行情况为:输入华氏温度:73c=22.7778,程序2:首先建立函数文件f2c.m.然后,函数c=f2c(f) c=5*(f-32)/9调用MATLAB命令窗口中的函数
2、文件。清除;y=输入(输入华氏温度):X=f2c(y)输出情况是:输入华氏温度:70c=21.1111x=21.1111,3.1.2m文件建立和打开m文件是一个文本文件,可以由任何编辑程序建立和编辑,而MATLAB提供的文本编辑器是最常用和最方便的。1创建新的m文件要创建新的m文件,有三种方法可以启动MATLAB文本编辑器:(1)菜单操作。在MATLAB主窗口的文件菜单中选择新建菜单项,然后选择移动文件命令,MATLAB文本编辑器窗口将出现在屏幕上。(2)命令操作。在MATLAB命令窗口中输入编辑命令,启动MATLAB文本编辑器,然后输入m文件的内容并保存。(3)命令按钮操作。单击MATLAB
3、主窗口工具栏上的新建M文件命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并保存。2打开现有的M文件也有三种方式打开现有的M文件:(1)菜单操作。在MATLAB主窗口的“文件”菜单中选择“打开”命令,屏幕上会出现“打开”对话框,选择要打开的m个文件。在文档窗口中,您可以编辑和修改打开的M文件。编辑后,保存M文件。(2)命令操作。输入命令:在MATLAB命令窗口中编辑文件名,然后打开指定的m文件。(3)命令按钮操作。单击MATLAB主窗口工具栏上的“打开文件”命令按钮,然后从弹出的对话框中选择要打开的m文件。3.2程序控制结构3.2.1序列结构1数据从键盘输入,可以使用输入功能,该功能的
4、调用格式为:A=输入(提示信息,选项);提示信息是一个字符串,用来提示用户输入什么样的数据。如果在调用输入函数时使用s选项,则允许用户输入字符串。例如,如果你想输入一个人的名字,你可以使用命令XM=xm=input(你叫什么名字?s);MATLAB提供的命令窗口数据输出函数的输出主要包括disp函数,其调用格式为disp(输出项),输出项可以是字符串也可以是矩阵。输入x和y的值,并在交换它们的值后输出。程序如下:x=输入(请输入x。);y=输入(请输入y。);z=x;x=y;y=z;disp(x);disp(y);例3-3求二次方程ax2 bx c=0的根。程序如下:a=输入(a=?);b=输
5、入(b=?);c=输入(c=?);d=b * b-4 * a * c;x=(-b sqrt(d)/(2*a),(-b sqrt(d)/(2 * a);disp(x1=,num2str(x(1),x2=,num 2 str(x(2);程序暂停,3程序暂停程序的执行可以使用暂停功能,其调用格式为:暂停(延迟秒)如果省略延迟时间,程序将暂停,直到用户按下任意键,程序继续执行。要强制暂停程序,请使用Ctrl-C命令。在MATLAB中,如果语句有三种格式,请选择结构1。(1)单分支if语句:if条件语句组尾在条件成立时执行语句组,执行后继续执行if语句的后续语句;如果条件不成立,直接执行if语句的后续语
6、句。双分支if语句:if条件语句组1 else语句组2在条件成立时结束,执行语句组1,否则执行语句组2,然后执行if语句的后续语句。示例3-4计算分段函数的值。程序如下:x=输入(请输入x :的值);如果x=0y=(x sqrt(pi)/exp(2);否则y=log(x sqrt(1 x * x)/2;End y,(3)多分支if语句:if条件1语句组1 elseif条件2语句组2 elseif条件m语句组m else语句组n end语句用于实现多分支选择结构。例3-5输入一个字符,如果是大写字母,输出其对应的小写字母;如果是小写字母,输出其对应的大写字母;如果是数字字符,输出其对应的数值;如
7、果是其他字符,按原样输出。c=输入(请输入一个字符,s);如果c=A end,2switch语句switch语句根据表达式的不同值执行不同的语句,它们的语句格式是:switch表达式case表达式1语句组1 case表达式2语句组2 case表达式m语句组m否则语句组n end,当表达式的值等于表达式1的值时执行语句组1,当表达式的值等于表达式2的值时执行语句组2, 当表达式的值等于表达式m的值时,执行语句组m;当表达式的值不等于case中列出的表达式的值时,执行语句组n。 当执行任何分支语句时,直接执行switch语句的下一句。购物中心根据以下标准以折扣价出售顾客购买的商品:价格200无折扣
8、200价格500 3%折扣500价格1000 5%折扣1000价格2500 8%折扣2500价格5000 10%折扣5000价格14%折扣输入所售商品的价格以找到实际售价。程序如下:价格=输入(请输入商品价格);开关固定(价格/100)情况下0.1%的价格小于200率=0;案例2,3,4%价格大于或等于200但小于500的比率=3/100;Case num2cell(5:9)%Case num2cell(10:24)%Case num2cell(25:49)%否则%价格大于或等于5000费率=14/100;End price=price*(1-rate)%输出货物的实际销售价格,3try语句,
9、其格式如下:try语句组1 catch语句组2 end try语句首先暂时执行语句组1,如果语句组1在执行过程中有错误,则错误信息被分配给保留的lasterr变量,然后执行语句组2被转移。矩阵乘法要求两个矩阵的维数一致,否则会出错。首先,求两个矩阵的乘积。如果有错误,它会自动转向寻找两个矩阵的点乘。程序如下:=1,2,3;4,5,6;B=7,8,9;10,11,12;试一试。C=a * B;End C lasterr%显示错误原因,3.2.3循环结构1for语句for语句的格式为:for循环变量=表达式1:表达式23360表达式3循环体语句结束,其中表达式1的值是循环变量的初始值,表达式2的值
10、是步长,表达式3的值是循环变量的最终值。当步长为1时,表达式2可以省略。例3-8如果一个三位数整数的每个数字的立方和等于这个数本身,它就叫做水仙花数。输出所有水仙花。程序如下:对于m=100:999 m1=固定(m/100);%求m的百位数m2=rem(固定(m/10),10);% seek m的十位数m3=rem(m,10);%如果m=m1 * m1 * m1 m2 * m2 * m2m 3 * m3 * m3 disp(m)结束,则找到m的单个数字,如例3-9所示,当n=100时,找到y的值。程序如下:y=0;n=100对于I=1:n y=y 1/(2 * I-1);在实际的MATLAB编
11、程中,循环语句的执行速度会降低,所以以前的程序通常被下面的程序代替:n=100I=1:2:2 * n-1;y=总和(1。/I);y、和for语句更通用的格式是:for循环变量=矩阵表达式循环体语句。结束执行过程是将矩阵的每个列元素依次分配给循环变量,然后执行循环体语句,直到每个列元素都被处理。例3-10写出下列程序的执行结果。s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;对于k=a s=s k结束显示;while语句的一般格式是:while(条件)循环语句结束。它的执行过程是:如果条件成立,执行循环语句。执行后,判断条件是否成立。如果没有,跳出循环。示例3
12、-11从键盘输入几个数字,当输入0时结束输入,并找出这些数字的平均值及其总和。程序如下:总和=0;CNT=0;值=输入(输入一个数字(以0结尾):);而(val=0)sum=sum val;CNT=CNT 1;值=输入(输入一个数字(以0结尾):);End if (cnt0) sum mean=sum/cntend,3 break语句和continue语句与循环结构相关的语句也包括break语句和continue语句。它们通常与if语句一起使用。break语句用于终止循环的执行。当语句在循环中执行时,程序将跳出循环并继续执行循环语句的下一条语句。continue语句控制跳过循环体中的一些语句。
13、当语句在循环体中执行时,程序将跳过循环体中所有剩余的语句,并继续下一个循环。示例3-12找到第一个可被100到200之间的21整除的整数。程序如下:对于n=100:200如果rem (n,21)=0继续结束中断结束n,4循环的嵌套如果循环结构的循环体包括一个循环结构,它被称为循环的嵌套,或多重循环结构。例3-13如果一个数等于它的真因子之和,它被称为完全数,如6=1 2 3,所以6是完全数。找出1500之间的所有完美数字。对于m=1:500s=0;对于k=1:m/2,如果rem(m,k)=0s=s k;如果m=s disp(m),则结束。3.3函数文件3.3.1函数文件的基本结构以函数语句为指
14、导,其基本结构为:函数输出参数表=函数名(输入参数表)。请注意函数体语句的一部分,其中以函数开头的行表示M文件是一个函数文件。函数名的命名规则与变量名的命名规则相同。输入参数是函数的输入参数,输出参数是函数的输出参数。当有多个输出参数时,应该用方括号括起来。写一个函数文件,求半径为r的圆的面积和周长。函数文件如下:函数s,p=圆(r)%圆计算半径为r% r的圆的面积和周长圆半径%s圆面积%p圆周长,2004年7月30日编辑s=pi * r * rp=2 * pi * r;函数调用函数调用的一般格式是:输出参数表=函数名(输入参数表)需要注意的是函数调用中参数的顺序和个数应该与函数定义中形式参数
15、的顺序和个数一致,否则会出错。当一个函数被调用时,实际的参数被传递给相应的形式参数,这样参数被传递,然后函数的函数被执行。在示例3-15中,通过使用函数文件实现了直角坐标(x,y)和极坐标(,)之间的转换。函数文件tran.m:函数,=tran(x,y)=sqrt(x * x y * y);=atan(y/x);调用命令文件main1.m的tran.m: y=输入(请输入y=:);x=输入(请输入x=:);,the=tran(x,y);在MATLAB中,函数可以被嵌套和调用,也就是说,一个函数可以调用其他函数,甚至调用自己。函数调用本身被称为函数的递归调用。示例3-16使用函数的递归调用,找到n!n!它是递归定义的:显然,找到n!是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《单片机》-第5章 单片机的内部资源
- 粉尘爆炸重在预防-粉尘防爆安全继续培训
- 2025年医疗废物管理知识培训考核试卷(附答案)
- 2026年中国移动广东分公司校园招聘考试备考题库及答案解析
- 2026春季甘肃临夏州引进高层次人才和急需紧缺专业技术人才849人考试备考试题及答案解析
- 2026年中石化天津石油分公司校园招聘笔试模拟试题及答案解析
- 2026河北新质科技有限公司校园招聘4人考试备考试题及答案解析
- 客户服务岗位业务流程优化方案
- 2026年中国石油吉林石化分公司校园招聘笔试备考试题及答案解析
- 2026年湘电集团有限公司校园招聘笔试参考题库及答案解析
- 人教版2023七年级上册英语单词表
- 招标邀请函模板范文
- 三轴六档变速器结构设计
- 2023年江苏省南京市栖霞区司法局招聘9人(共500题)笔试必备质量检测、历年高频考点模拟试题含答案解析
- 数据出境安全评估申报指南(第一版)
- GB/T 3836.11-2022爆炸性环境第11部分:气体和蒸气物质特性分类试验方法和数据
- WS/T 461-2015糖化血红蛋白检测
- 警械使用课件
- 崔允漷建构新教学心得体会(共13篇)
- 输血相容性检测室内质控-课件
- M30注浆砂浆配合比计算资料
评论
0/150
提交评论