MATLAB程序设计通信10

上传人:痛*** 文档编号:218896647 上传时间:2023-06-23 格式:PPT 页数:47 大小:1.40MB
收藏 版权申诉 举报 下载
MATLAB程序设计通信10_第1页
第1页 / 共47页
MATLAB程序设计通信10_第2页
第2页 / 共47页
MATLAB程序设计通信10_第3页
第3页 / 共47页
资源描述:

《MATLAB程序设计通信10》由会员分享,可在线阅读,更多相关《MATLAB程序设计通信10(47页珍藏版)》请在装配图网上搜索。

1、MATLABMATLAB程序设计通信程序设计通信1010vMATLAB不仅可以在命令行中逐行输入命令,然后依次执行,而且还可以像C、FORTRAN等高级语言一样进行程序设计。v在MATLAB程序设计中,可以充分利用 MATLAB数据结构的特点,从而使程序结构简单,提高编程效率。m文件简介m文件简介v用户如想灵活应用matlab去解决实际问题,充分调用matlab的科学技术资源,就需要编辑m文件;v编辑m文件可使用M文本编辑器。2.1 M文件2.1.1M文件概述文件概述vM文件是由文件是由MATLAB语句(命令或函数)构成的语句(命令或函数)构成的ASCII码文本文件,执行程序时逐行解释运行程序

2、,码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言。是解释性的编程语言。v文件名必须以文件名必须以“.m”为扩展名为扩展名。v两种形式:两种形式:v独立的独立的m文件文件命令文件命令文件(ScriptFile)v可调用的可调用的m文件文件函数文件函数文件(FunctionFile)。一、一、matlab的工作模式的工作模式v指令驱动模式指令驱动模式 在在matlab窗口下当用户输入单行指令时,窗口下当用户输入单行指令时,matlab立即处理这条指令,可以显示结果,这立即处理这条指令,可以显示结果,这就是就是matlab命令行方式。命令行方式。命令行操作时,命令行操作时,m

3、atlab窗口只允许一次执行命窗口只允许一次执行命令行上的一个或几个语句。令行上的一个或几个语句。例如:例如:x1=0:10 x1=012345678910 x2=0:3:11x2=0369x3=11.5:-3:0 x3=11.50008.50005.50002.5000 x1=0:10,x2=0:3:11,x3=11.5:-3:0 x1=012345678910 x2=0369x3=11.50008.50005.50002.5000在在matlab窗口输入数据和命令进行计算时,当处理复杂问窗口输入数据和命令进行计算时,当处理复杂问题和大量数据时是不方便的。因此应编辑题和大量数据时是不方便的。

4、因此应编辑m文件。文件。命令行方式程序可读性差,而且不能存储,对于复杂的问命令行方式程序可读性差,而且不能存储,对于复杂的问题,应编写成能存储的程序文件。题,应编写成能存储的程序文件。将将matlab语句构成的程序存储成以语句构成的程序存储成以.m为扩展名的为扩展名的文件,然后再执行该程序文件,这种工作模式称为文件,然后再执行该程序文件,这种工作模式称为程序文件模式程序文件模式。程序文件不能在指令窗口下建立,因为指令窗口只程序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几个语句。允许一次执行一行上的一个或几个语句。vm文件模式文件模式二、M文本编辑器文本编辑器m文件的类型

5、是普通的文本文件,我们可以使用系文件的类型是普通的文本文件,我们可以使用系统统M文本编辑器来建立文本编辑器来建立m文件。文件。具体的创建方法具体的创建方法:1.在在matlab指令窗口点指令窗口点击击File/New/M-filev启动编译器,创建新启动编译器,创建新M文件文件2.点击点击matlab指令工具条上的指令工具条上的图标图标 3.在在matlab指令窗运行指令指令窗运行指令editM文件编译器文件编译器v打开已有的打开已有的M文件文件1.点击点击matlab指令工具条上的指令工具条上的图标图标 2.选中选中matlab指令窗指令窗File/Open子菜单,从弹出的子菜单,从弹出的对

6、话框点选所需打开的文件。对话框点选所需打开的文件。v保存已有的保存已有的M文件文件1.点击点击matlab指令工具条上的指令工具条上的图标图标 2.选中选中matlab指令窗指令窗File/Save子菜单,进行保存。子菜单,进行保存。三、三、matlab文件的类型文件的类型1.数据文件数据文件.matv.mat文件是matlab以标准二进制格式保存的数据文件,可将工作空间中有用的数据变量保存下来。v.mat文件的生成和调用是由函数save和load完成的。m文件的语法类似于c语言,但又有其自身特点。它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言

7、。2.m文件文件m文件有两类:独立的m文件 称命令文件(ScriptFile)可调用的m文件 称函数文件(FunctionFile)v命令文件命令文件简单的简单的m文件文件命令文件实际上是一串指令的集合,与命令文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。其结果是一样的。没有输入输出参数。v命令文件包括两部分:命令文件包括两部分:注释文件和程序文件注释文件和程序文件3.m函数文件函数文件需要输入变量,返回输出变量需要输入变量,返回输出变量matlab用户可以根据需要编辑自己的用户可以根据需要编辑自己的m文

8、件,它们可以像文件,它们可以像库函数一样方便的调用,从而极大地扩展了库函数一样方便的调用,从而极大地扩展了matlab的能力。的能力。这种用这种用matlab语言创建定义新的语言创建定义新的matlab函数的功能,正体现函数的功能,正体现了了matlab语言强大的扩展功能。语言强大的扩展功能。对于某一类特殊问题,如创建了许多对于某一类特殊问题,如创建了许多m函数文件,则可函数文件,则可形成新的工具箱。形成新的工具箱。vm函数文件的格式:函数文件的格式:function输出形参表输出形参表=函数名(输入形参表)函数名(输入形参表)注释说明语句段注释说明语句段程序语句段程序语句段特定规则:特定规则

9、:1)m函数文件第一行必须以单词函数文件第一行必须以单词function作为引导作为引导词,必须遵循如下形式:词,必须遵循如下形式:function输出形参表输出形参表=函数名函数名(输入形参表输入形参表)3.m函数文件的文件名必须是函数文件的文件名必须是.m。4.程序中的变量均为局部变量,不保存在工作程序中的变量均为局部变量,不保存在工作空间中。其变量只在函数运行期间有效。空间中。其变量只在函数运行期间有效。2.函数名的命名规则与变量名相同。输入形参函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,

10、则应该用方括号数。当输出形参多于一个时,则应该用方括号括起来。括起来。函数文件如下:函数文件如下:functions,p=fcircle(r)%calculatetheareaandperimeterofacircleofradius%r圆半径圆半径%s圆面积圆面积%p圆周长圆周长%2004年年7月月30日编日编s=pi*r*r;p=2*pi*r;例:编写函数文件求半径为例:编写函数文件求半径为r的圆的面积和周长。的圆的面积和周长。保存函数文件时,文件名必保存函数文件时,文件名必须是须是.m。如此例,保存文件名为如此例,保存文件名为fcircle.mv函数的调用:函数的调用:函数调用的一般格式

11、是:函数调用的一般格式是:输出实参表输出实参表=函数名函数名(输入实参表输入实参表)注意:注意:函数调用时各实参出现的顺序、个数,应与函函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。而实现参数传递,然后再执行函数的功能。例:利用函数文件,实现直角坐标例:利用函数文件,实现直角坐标(x,y)与极坐标与极坐标(r r,q q)之间的转换。之间的转换。已知转换公式为:极坐标的矢径:极坐标的极角:clearP

12、leaseinputx=:5Pleaseinputy=:6rho=7.8102the=0.8761运行运行main1.m程序后,得到运行结果:程序后,得到运行结果:v在在MATLAB中,函数可以嵌套调用,即一个函数可以调用中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身。别的函数,甚至调用它自身。v一个函数调用它自身称为函数的递归调用。一个函数调用它自身称为函数的递归调用。例:利用函数的递归调用,求例:利用函数的递归调用,求n!。!。n!本身就是以递归的形式定义的:!本身就是以递归的形式定义的:例:求s=1!+2!+3!+4!+5!运行运行main2.m程序程序,得到运行结果:

13、,得到运行结果:v在在MATLAB中,函数文件中的变量是局部的,与其他函数中,函数文件中的变量是局部的,与其他函数文件及文件及MATLAB工作空间相互隔离,即在一个函数文件中工作空间相互隔离,即在一个函数文件中定义的变量不能被另一个函数文件引用。如果在若干函数定义的变量不能被另一个函数文件引用。如果在若干函数中,都把某一变量定义为全局变量,那么这些函数将公有中,都把某一变量定义为全局变量,那么这些函数将公有这一变量。全局变量的作用域是整个这一变量。全局变量的作用域是整个MATLAB工作空间,工作空间,即全程有效,所有的函数都可以对它进行存取和修改。因即全程有效,所有的函数都可以对它进行存取和修

14、改。因此,定义全局变量是函数间传递信息的一种手段。此,定义全局变量是函数间传递信息的一种手段。v全局变量用全局变量用global命令定义,格式为:命令定义,格式为:global变量名变量名全局变量与局部变量全局变量与局部变量数据的输入和输出数据的输入和输出v输入:inputv调用格式:A=input(提示信息,s)v输出:dispv调用格式:disp(输出项)vmatlab中disp()就是屏幕输出函数,类似于c语言中的printf()函数.程序的暂停:程序的暂停:pausev调用格式:调用格式:pause(延迟时间延迟时间)v为了动态观察变化过程为了动态观察变化过程,利用,利用pause(a

15、)暂停暂停a秒后秒后执行下一条指令执行下一条指令v若不加参数,直接用若不加参数,直接用pause命令,即为程序暂停执命令,即为程序暂停执行,直至用户按任意一个按键,程序开始继续执行,直至用户按任意一个按键,程序开始继续执行。行。四、四、matlab的程序结构的程序结构v顺序结构顺序结构依次顺序执行程序的各条语句依次顺序执行程序的各条语句v循环结构循环结构被重复执行的一组语句,循环被重复执行的一组语句,循环是计算机解决问题的主要手段。是计算机解决问题的主要手段。matlab语言的程序结构与其它高级语言是语言的程序结构与其它高级语言是一致的,分为顺序结构,循环结构,分支结构。一致的,分为顺序结构,

16、循环结构,分支结构。语法为:语法为:fori=表达式表达式(表达式为一个向量)(表达式为一个向量)可执行语句可执行语句end循环语句主要有:循环语句主要有:forend循环结构循环结构:例:利用例:利用for循环求循环求1!+2!+3!+5!的值!的值sum=0;for i=1:5 pdr=1;for k=1:i pdr=pdr*k;end sum=sum+pdr;end运行结果:运行结果:sumsum=153vwhilewhile循环将循环体中的语句循环执行不定次数。循环将循环体中的语句循环执行不定次数。语法为:语法为:while while 表达式表达式 循环体语句循环体语句 end en

17、dv表达式表达式一般是由逻辑运算和关系运算以及一般运算组一般是由逻辑运算和关系运算以及一般运算组成的,以判断循环的进行和停止;只要表达式的值非成的,以判断循环的进行和停止;只要表达式的值非0 0,继续循环;直到表达式值为,继续循环;直到表达式值为0 0,循环停止。,循环停止。whileend循环循环例:用例:用while循环求循环求1100间整数的和间整数的和 程序:sum=0;i=1;while isumsum=5050break语句和语句和continue语句语句与循环结构相关的语句还有与循环结构相关的语句还有break语句和语句和continue语句。语句。它们一般与它们一般与if语句配

18、合使用。语句配合使用。break语句用于终止循环的执行语句用于终止循环的执行。当在循环体内执行到该。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语语句时,程序将跳出循环,继续执行循环语句的下一语句。句。continue语句控制跳过循环体中的某些语句语句控制跳过循环体中的某些语句。当在循环体。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。继续下一次循环。例:求例:求100,200之间第一个能被之间第一个能被21整除的整数。整除的整数。ifelseend语句有语句有3种形式种形式单分支单分支i

19、f语句:语句:if表达式表达式执行语句执行语句endv选择结构选择结构根据一定条件来执行的各条语句。根据一定条件来执行的各条语句。当条件成立时,则执行语句组,执行完之当条件成立时,则执行语句组,执行完之后继续执行后继续执行if语句的后继语句,若条件不成立,语句的后继语句,若条件不成立,则直接执行则直接执行if语句的后继语句。语句的后继语句。双分支双分支if语句:语句:if表达式表达式语句语句1else语句语句2end当条件成立时,执行语句组当条件成立时,执行语句组1,否则执行语句,否则执行语句组组2,语句组,语句组1或语句组或语句组2执行后,再执行执行后,再执行if语句的语句的后继语句。后继语

20、句。多分支多分支if语句:语句:if表达式表达式1语句语句1elseif表达式表达式2语句语句2elseif表达式表达式3语句语句3else语句语句nend用于实现多分支选择结构。用于实现多分支选择结构。例:编写m函数,计算分段函数值 x (x1)Y 2x-1 (1x=10)try语句语句vtry的作用是让的作用是让Matlab尝试执行一些语句尝试执行一些语句,执行过程中如果出执行过程中如果出错错,则执行则执行catch部分的语句部分的语句.vtry一般与一般与catch连用,表示选择判断。连用,表示选择判断。try尝试执行的语句块,组命令尝试执行的语句块,组命令1总被执行,错误时跳出此结构总

21、被执行,错误时跳出此结构catch出错后执行的语句块,仅当组命令出错后执行的语句块,仅当组命令1出现错误时组命令出现错误时组命令2才才被执行被执行end五、文件操作五、文件操作vmatlab文件输入、输出(I/O)函数允许把其它格式的数据文件直接读进matlab,它是以c语言文件I/O函数为基础的。1.打开和关闭文件(fopen,fclose)格式:fid=fopen(数据文件,r)r 读 w 写 a 附加 rt 读写v文件一旦打开,即可进行读写操作。sta=fclose(fid)关闭上述打开文件 sta=fclose(all)关闭所有打开的文件v与save,load类似,是matlab专用数据文件读写工具(*.mat)。2.读写二进制数据文件 fread,fwrite 可读写数据文件,文本文件。例:fid=fopen(user.dat,r)a=fread(fid,50)sta=fclose(fid)小 结v 本节主要介绍了matlab语言程序设计基础。matlab 编程简单,容易掌握。v 通过学习,应能编写简单程序结束结束

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!