版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB 程序设计程序设计 3. 程序设计程序设计3.1 M文件文件3.2 函数文件函数文件3.3 程序控制结构程序控制结构MATLAB 程序设计程序设计 matlab的程序设计 matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。 是matlab重要组成部分。MATLAB 程序设计程序设计 3.1 M文件文件umatlab的工作模式的工作模式m文件模式文件模式指令驱动模式指令驱动模式通常通常matlab以指令驱动模式工作,即在以指令驱动模式工作,即在matlab 窗窗口下当用户输入单行指令时,口下当用户输入单行指令时,matlab 立即处理这立即处理这条指令,并显示
2、结果,这就是条指令,并显示结果,这就是matlab命令行方式。命令行方式。命令行操作时,命令行操作时,matlab窗口只允许一次执行一行上窗口只允许一次执行一行上的一个或几个语句。的一个或几个语句。MATLAB 程序设计程序设计 x1=0:10 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2=0:3:11x2 = 0 3 6 9x3=11.5:-3:0 x3 = 11.5000 8.5000 5.5000 2.5000MATLAB 程序设计程序设计 x1=0:10,x2=0:3:11,x3=11.5:-3:0 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2 = 0
3、3 6 9x3 = 11.5000 8.5000 5.5000 2.5000u在在matlab窗口输入数据和命令进行计算时,当处理复杂问题窗口输入数据和命令进行计算时,当处理复杂问题和大量数据时是不方便的。因此应编辑和大量数据时是不方便的。因此应编辑m文件。文件。u命令行方式程序可读性差,而且不能存储,对于复杂的问命令行方式程序可读性差,而且不能存储,对于复杂的问题,应编写成能存储的程序文件。题,应编写成能存储的程序文件。MATLAB 程序设计程序设计 um文件模式l将将matlab语句构成的程序存储成以语句构成的程序存储成以m为扩展名的文件,然为扩展名的文件,然后再执行该程序文件,这种工作模
4、式称为程序文件模式。后再执行该程序文件,这种工作模式称为程序文件模式。l程序文件不能在指令窗口下建立,因为指令窗口只允许一程序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几个语句。次执行一行上的一个或几个语句。lm文件的类型是普通的文本文件,我们可以使用系统认可文件的类型是普通的文本文件,我们可以使用系统认可的文本文件编辑器来建立的文本文件编辑器来建立m文件。如文件。如dos下的下的edit,windows的记事本和的记事本和word等。等。M文件:function a=f(x,y,z)a=x:y:zMATLAB 程序设计程序设计 uM文件可分为两种文件可分为两种:主程序
5、和子程序。u主程序主程序 (也称主程序文件): 一般是由用户为解决特定的问题而编制的程序。u 子程序子程序 (称为函数文件):它必须由其它M文件来调用。函数文件往往具有一定的通用性可以进行递归调用。MATLAB 程序设计程序设计 M文件的结构文件的结构u主程序文件的格式特征如下有关程序的功能、使用方法等内容的注释。主程序前面的若干行通常是程序的注释,每行以“”开始。程序的主体。整个程序应按MATLAB标识符的要求起文件名,并加上后缀mMATLAB 程序设计程序设计 1)建立新的)建立新的M文件文件 (1) 菜单操作菜单操作 (2) 命令操作命令操作 命令窗中输入命令窗中输入edit (3) 命
6、令按钮操作命令按钮操作2 M文件的建立与打开文件的建立与打开2)打开已有的)打开已有的M文件文件 (1) 菜单操作菜单操作 (2) 命令操作命令操作 命令窗口输入:命令窗口输入: edit 文件名文件名 则打开指定的则打开指定的M文件文件 (3) 命令按钮操作命令按钮操作MATLAB 程序设计程序设计 u对主程序文件的运行方式通常有两种:对主程序文件的运行方式通常有两种:在在MATLAB的命令窗口中运行:的命令窗口中运行:在MATLAB的命令窗中键入此程序的文件名后,系统就开始执行文件中的程序;在编辑窗口中运行在编辑窗口中运行:通过编辑窗口打开所要运行的文件,然后再运行。主程序文件中的语句可以
7、对MATLAB工作空间中的所有数据进行运算操作。MATLAB 程序设计程序设计 3、matlab文件的类型文件的类型u 数据文件 .mat matlab以标准二进制格式保存的数据文件可将工作空间中有用的数据变量保存下来mat文件的生成和调用是由函数save和load完成的load gatlin;image(X)colormap(gray)1002003004005006005010015020025030035040045010020030040050060050100150200250300350400450MATLAB 程序设计程序设计 3.2 m文件文件uM文件用MATLAB语言编写的程
8、序m文件的语法类似于c语言,但又有其自身特点只是一个简单的ASCII码文本文件执行程序时逐行解释运行程序,matlab是解释性的编程语言uM文件分类调用方式独立的m文件 称命令文件(Script File)可调用m文件 称函数文件(Function File)matlab内置函数文件系统文件s函数MATLAB 程序设计程序设计 3.2 m文件文件u命令文件(Script File)命令文件实际上是一串指令的集合与在命令窗口逐行执行文件中的所有指令的结果相同没有输入输出参数.命令文件包括两部分:注释文件和程序文件MATLAB 程序设计程序设计 u注释文件%RANKNumber of linear
9、ly independent rows or columns.% K = RANK(X) is the number of singular values of X% that are larger than MAX(SIZE(X) * NORM(X) * EPS.% K = RANK(X,tol) is the number of singular values of X that% are larger than tol.% Copyright (c) 1984-94 by The MathWorks, Inc.u程序文件s = svd(x);if (nargin = 1) tol = m
10、ax(size(x) * max(s) * eps;endr = sum(s tol);程序部分程序部分MATLAB 程序设计程序设计 3.2 m文件文件u函数函数m文件文件需要输入变量,返回输出变量需要输入变量,返回输出变量用户可以根据需要编辑自己的用户可以根据需要编辑自己的m文件,可以像库函数文件,可以像库函数一样方便的调用,极大地扩展了一样方便的调用,极大地扩展了matlab 的能力的能力u新的工具箱新的工具箱对于某一类特殊问题,如创建了许多对于某一类特殊问题,如创建了许多m函数文件,则函数文件,则可形成。可形成。这种用这种用matlab语言创建定义新的语言创建定义新的matlab函数的
11、功能,函数的功能,正体现了正体现了matlab语言强大的扩展功能语言强大的扩展功能MATLAB 程序设计程序设计 u函数m文件是用来定义子程序的由function起头,后跟的函数名必须与文件名相同;有输入输出变元(变量),可进行变量传递;除非用global声明,程序中的变量均为局部变量,不保存在工作空间中。u函数m文件由以下部分构成:函数定义行;H1行;%函数帮助文本;函数体;注释。3.2 m文件文件MATLAB 程序设计程序设计 u函数m文件的格式: function 返回变量=函数名(输入变量) 注释说明语句段 程序语句段u特定规则:函数m文件第一行必须以单词function作为引导词,必
12、须遵循如下形式:function =()m文件的文件名必须是 .m。u程序中的变量均为局部变量,不保存在工作空间中,其变量只在函数运行期间有效。uReturn语句可以省略,函数可嵌套调用 3.2 m文件文件MATLAB 程序设计程序设计 3.2 m文件文件u注意注意:当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。当函数不含输出变量时,则直接略去输出部分或采用空方括号表示。u例如:functionx,y,zsphere(theta,phi,rho)。MATLAB 程序设计程序设计 function y = mymean(x)m,n = size(x);
13、if m = 1m = n;endy = sum(x)/m;关键字:关键字: function函数名函数名 (与文件名相同与文件名相同 name .m)输出变量输出变量输入变量输入变量MATLAB代码代码保存后保存后,在在matlab的命令窗口调用,注意要先给变量的命令窗口调用,注意要先给变量x赋值赋值x=1:10;Y=mymean(x);3.2 m文件文件MATLAB 程序设计程序设计 3.2 m文件文件u函数调用函数调用函数调用的一般格式是:函数调用的一般格式是: 输出实参表输出实参表=函数名函数名(输入实参表输入实参表)u【注意注意】各实参出现的顺序、个数,应与函数定义时形参的顺各实参出
14、现的顺序、个数,应与函数定义时形参的顺序、个数一致序、个数一致调用时,先将实参传递给相应的形参,从而实现参数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能传递,然后再执行函数的功能MATLAB 程序设计程序设计 例例3-1 编写函数文件求半径为编写函数文件求半径为r的圆的面积和周长。的圆的面积和周长。1、首先建立、首先建立函数文件函数文件fcircle.m如下:如下: function s,p=fcircle(r)%CIRCLE calculate the area and perimeter of a circle of radii r%r 圆半径圆半径%s 圆面积
15、圆面积%p 圆周长圆周长s=pi*r*r;p=2*pi*r;2、命令窗口输入以下命令并调用该函数文件clear;y=input(Input radii:);s,p=fcircle(y)3、输出情况:Input radiis:3s = 28.2743p = 18.8496MATLAB 程序设计程序设计 例例3-2 分别建立命令文件和函数文件,将华氏温度分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度转换为摄氏温度c, c=5/9(f-32)。程序程序1: S1:先建立先建立命令文件命令文件并以文件名并以文件名f2c.m存盘。存盘。 clear; %清除工作空间中的变量清除工作空间中的变量
16、f=input(Input Fahrenheit temperature:); c=5*(f-32)/9S2: 在命令窗口中输入在命令窗口中输入f2c,执行该命令文件。执行情况为:,执行该命令文件。执行情况为: Input Fahrenheit temperature:73 c = 22.7778MATLAB 程序设计程序设计 程序程序2:1: 首先建立首先建立函数文件函数文件f3c.m。function c=f3c(f)c=5*(f-32)/92: 在命令窗口输入以下命令并调用该函数文件。在命令窗口输入以下命令并调用该函数文件。clear;y=input(Input Fahrenheit t
17、emperature:);x=f3c(y)3: 输出情况为:输出情况为:Input Fahrenheit temperature:70c = 21.1111x = 21.1111MATLAB 程序设计程序设计 umatlab内置函数文件matlab自定义的函数文件称内置函数文件调用方法:使用函数名并给出相应的入口、出口参数即可u 例如:sin.m函数用type sin查不到。 得到:得到:sin is a built-in function.调用格式:y=sin(2*x)实际应用中:x=0:2*pi/180:2*pi;y=sin(2*x)plot(x,y)01234567-1-0.8-0.6-
18、0.4-0.200.20.40.60.81MATLAB 程序设计程序设计 又如又如 sqrt(x) 求求x的平方根的平方根 abs(x) 求求x的绝对值的绝对值 det(a) 求行列式的值求行列式的值 matlab拥有大量的内置数学函数,供我们在数值运算拥有大量的内置数学函数,供我们在数值运算和符号运算中调用和符号运算中调用。MATLAB 程序设计程序设计 u系统文件s函数用于描述系统运动的专用函数,是特殊的 m 文件。u s 函数有3类: 由simulink结构图自动创建 可用c语言程序设计mex文件 直接定义 用函数m文件编写u s函数使用即可在框图中使用,也可在文件中调用MATLAB 程
19、序设计程序设计 S函数的调用格式 sys, x0=sfunction( t, x, u, flag)S函数与函数m文件类似,只是输入、输出变量是限定的。系统状态状态初值用户定义的系统当前时刻当前状态值当前输入值标志量MATLAB 程序设计程序设计 3.3 程序控制结构程序控制结构umatlabmatlab语言的程序结构:三种语言的程序结构:三种顺序结构顺序结构 依次顺序执行程序的各条语句依次顺序执行程序的各条语句循环结构循环结构 被重复执行的一组语句被重复执行的一组语句for endwhile end分支结构分支结构根据一定条件来执行的各条语句根据一定条件来执行的各条语句if else end
20、switchMATLAB 程序设计程序设计 顺序结构程序程序模块模块1 1程序模块程序模块2 2uMATLAB中实现顺序结构的方法非常简单: 只需将程序语句顺序排列即可 MATLAB 程序设计程序设计 例例3-3 输入输入x,y的值,并将它们的值互换后输出。的值,并将它们的值互换后输出。 程序如下:程序如下: x=input(please input x:); y=input(please input y:); z=x; x=y; y=z; disp(x); disp(y);MATLAB 程序设计程序设计 选择结构选择结构u在MATLAB中,选择结构由两种语句结构实现:if语句switch语句
21、条件条件程序模块程序模块1成立成立不成立不成立程序模块程序模块2MATLAB 程序设计程序设计 1if语句语句 选择结构选择结构if语句语句if 表达式表达式 程序模块程序模块1 else 程序模块程序模块2endMATLAB 程序设计程序设计 if语句的两种变形u单分支if语句:if表达式 程序模块endu多分支if语句:超过2个的选择if表达式1 程序模块1 elseif 表达式2 程序模块2 elseif 表达式n 程序模块n else 程序模块n+1 endMATLAB 程序设计程序设计 例:将百分制的学生成绩转换为五级制的成绩输出例:将百分制的学生成绩转换为五级制的成绩输出clear
22、n=input(输入n= ); if n=90 r=Aelseif n=80 r=Belseif n=70 r=Celseif n=60 r=Delse r=Eend运行结果:运行结果:输入n= 87r =Bclearn=input(输入n= ); switch fix(n/10) case 10,9 r=A case 8 r=B case 7 r=C case 6 r=D otherwise r=EendMATLAB 程序设计程序设计 选择结构选择结构switch语句语句 switch 表达式 case 数值1 程序模块1; case 数值2 程序模块2;otherwise 程序模块n endMATLAB 程序设计程序设计 例例 某商场对顾客所购买的商品实行打折销售某商场对顾客所购买的商品实行打折销售,标准如下,标准如下(商品价格用商品价格用price来表示来表示): price200 没有折扣没有折扣 200price500 3%折扣折扣 500price1000 5%折扣折扣 1000price2500 8%折扣折扣 2500price 0) sum mean=sum/c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初三班级奖惩制度大全
- 餐厅奖惩制度与卫生制度
- 电力企业安全员奖惩制度
- 施工单位食堂奖惩制度
- 项目工作纪律奖惩制度
- 保密企业考核与奖惩制度
- 垃圾清运员管理奖惩制度
- 乡镇政府防溺水奖惩制度
- 幼儿园教师班级奖惩制度
- 产后恢复:产后免疫力提升策略
- 2026年湖南生物机电职业技术学院单招职业技能考试题库附答案
- 2026年烟台汽车工程职业学院单招综合素质考试题库附答案
- 门市房房租租赁合同
- 2025年数据中心机架行业分析报告及未来发展趋势预测
- 2025年江西农业工程职业学院单招职业技能考试题库含答案详解综合
- 会计学原理(嘉兴大学)知到智慧树网课答案
- 2025年影视行业VR影视技术应用前景研究报告
- 《WPS Office办公应用案例教程》全套教学课件
- 党校住宿管理办法
- 血吸虫病健康教育课课件
- 文学常识1000题含答案
评论
0/150
提交评论