内蒙古科技大学1本章内容(1)MATLAB的基本数学函数和常用命令的使用;(2)MATLAB的m文件的建立与使用;(3)MATLAB的矩阵元素的输入及特殊矩阵的实现;(4)MATLAB的矩阵运算和向量运算;(5)MATLAB的外部命令调用方法;(6)MATLAB的基本输入/输出函数及其应用;(7)MATLAB的关系运算和逻辑运算;(8)MATLAB的条件转移语句、循环语句等常用控制语句的使用;(9)MATLAB的基本绘图、字符添加、图形控制和图形修饰命令。第一章仿真软件-MATLAB内蒙古科技大学21.1MATLAB简介1.1.1概述一、MATLAB语言的显著特点1、具有强大的矩阵运算能力:MatrixLaboratory(矩阵实验室),使得矩阵运算非常简单。2、是一种演算式语言•MATLAB的基本数据单元是既不需要指定维数,也不需要说明数据类型的矩阵(向量和标量为矩阵的特例),而且数学表达式和运算规则与通常的习惯相同。因此MATLAB语言编程简单,使用方便。内蒙古科技大学3较为常见的MATLAB工具箱主要有:()通讯工具箱(CommunicationsToolbox);()控制系统工具箱(ControlSystemsToolbox);()数据获得工具箱(DataAcquisitionToolbox);()数据库工具箱(DatabaseToolbox);()滤波器设计工具箱(FilterDesignToolbox);()模糊逻辑工具箱(FuzzyLogicToolbox);()图象处理工具箱(ImageProcessingToolbox);内蒙古科技大学4()映射工具箱(MappingToolbox);()神经网络工具箱(NeuralNetworkToolbox);()优化工具箱(OptimizationToolbox);()鲁棒控制工具箱(RobusControlToolbox);()信号处理工具箱(SignalProcessingToolbox);()统计学工具箱(StatisticsToolbox);()系统辨识工具箱(SystemIdentificationToolbox);()小波分析工具箱(WaveletToolbox)。内蒙古科技大学5•MATLAB启动后将出现如图1-1所示的命令窗口。•在MATLAB命令窗口中的“”标志为MATLAB的命令提示符,“|”标志为输入字符提示符。•如果用户是第一次使用MATLAB,则建议首先在命令行中键入demo命令,它将启动MATLAB的演示程序,用户可以在这些演示程序中领略到MATLAB所提供的强大的运算和绘图功能。61.2MATLAB的基本操作1.2.1MATLAB语言的结构内蒙古科技大学7•MATLAB命令窗口就是MATLAB语言的工作空间,因为MATLAB的各种功能的执行必须在此窗口下才能实现,在这种环境下输入的MATLAB语句称为“窗口命令”。•所谓窗口命令,就是在上述环境下输入的MATLAB语句,并直接执行它们完成相应的运算、绘图等。•1、MATLAB语句的一般形式为•变量名=表达式内蒙古科技大学8•其中等号右边的表达式可由操作符或其它字符、函数和变量名组成,它可以是MATLAB允许的数学或矩阵运算,也可以包含MATLAB下的函数调用;等号左边的变量名为MATLAB语句右边表达式的返回值语句所赋值的变量的名字。•在调用函数时,MATLAB允许一次返回多个结果,这时等号左边的变量名需用[]括起来,且各个变量名之间用逗号分隔开,如果左边的变量名缺省时返回值自动赋给ans。内蒙古科技大学92、命令行编辑器(1)方向键和控制键可以编辑修改已输入的命令:回调上一行命令:回调下一行命令(2)命令窗口的分页输出•moreoff:不允许分页moreon:允许分页•more(n):指定每页输出的行数•回车前进一行,空格键显示下一页,q结束当前显示。(3)多行命令(…)•如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。•S=1-12+13+4+…9-4-18;内蒙古科技大学10表1-1MATLAB中的算术运算符算术运算符意义算术运算符意义+加\左除-减∕右除*乘^幂MATLAB中使用的算术运算符如表1-1所示。对于矩阵来说,这里左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于标量,两种除法运算的结果相同,如1/4和4\1有相同的值0.25。常用的十进制符号如小数点、负号等,在MATLAB中也可以同样使用,表示10的幂次要用符号e或E,如:3、-99、0.0001、1.6e-20、6.2e23。内蒙古科技大学11•在MATLAB中变量名必须以字母开头,之后可以是任意字母、数字或者下划线(不能超过19个字符),但变量中不能含有标点符号。变量名区分字母的大小写,同一名字的大写与小写被视为两个不同的变量。一般说来,在MATLAB下变量名可以为任意字符串,但MATLAB保留了一些特殊的字符串如表1-2所示。内蒙古科技大学12特殊变量取值特殊变量取值ans默认变量名jj=√-1inf无穷大,如1/0flops浮点运算数eps最小数,如1/infnargin函数的输入变量数目NaN不定量,如0/0nargout函数的输出变量数目pi圆周率realmin最小的可用正实数ii=√-1readmax最大的可用正实数表1-2MATLAB中的特殊变量内蒙古科技大学13•MATLAB命令语句能即时执行,它不是输入完全部MATLAB命令语句经过编译、连接形成可执行文件后才开始执行,而是每输入完一条命令,MATLAB就立即对其处理,并得出中间结果,完成了MATLAB所有命令语句的输入,也就完成了它的执行,直接便可得到最终结果。从这一点来说,MATLAB清晰地体现了类似“演算纸”的功能。例如•a=5;•b=6;•c=a*b,结果显示C=30内蒙古科技大学14•MATLAB语句既可由分号结束,也可由逗号或换行号结束,但它们的含义是不同的。如果用分号“;”结束,则说明除了这一条命令外还有下一条命令等待输入,MATLAB这时将不立即显示运行的中间结果,而等待下一条命令的输入,如以上前两条命令;如果以逗号“,”或回车结束,则将把左边返回的内容全部显示出来,如以上后两条命令。•当然在任何时候也可输入相应的变量名来查看其内容。如内蒙古科技大学15•在MATLAB中,几条语句也可以出现在同一行中,只要用分号或逗号将它们分割。例如•a=5;b=6;c=a*b,d=c+2•这时可得与上面相同的结果。内蒙古科技大学16•MATLAB工作空间中的变量在退出MATLAB时会丢失,如果在退出MATLAB前想将工作空间中的变量保存到文件中,则可以调用save命令来完成,该命令的调用格式为•save文件名变量列表其它选项••注意这一命令中不能使用逗号,不同的元素之间只能用空格来分隔。内蒙古科技大学17•例如,想把工作空间中的a,b,c变量存到mydat.mat文件中去,则可用下面的命令来实现。•savemydatabc•这里将自动地使用文件扩展名mat。如果想将整个工作空间中所有的变量全部存入该文件,则应采用下面的命令。•savemydat内蒙古科技大学18•当然这里的mydat也可省略,这时将工作空间中的所有变量自动地存入到文件matlab.mat中了。应该指出的是,这样存储的文件均是按照二进制的形式进行的,所以得出的文件往往是不可读的,如果想按照ASCII码的格式来存储数据,则可以在命令后面加上一个控制参数-ascii,该选项将变量以单精度的ASCII码形式存入文件中去,如果想获得高精度的数据。则可使用控制参数:-ascii-double。内蒙古科技大学19•MATLAB提供的load命令可以从文件中把变量调出并重新装入到MATLAB的工作空间中去,该函数的调用格式与save命令同。•当然工作空间中变量的保存和调出也可利用菜单项中的File|SaveWorkspaceAs…和File|Open命令来完成。内蒙古科技大学20•如果想查看目前的工作空间中都有哪些变量名,则可以使用who命令来完成。例如当MATLAB的工作空间中有a,b,c,d四个变量名时,使用who命令将得出如下的结果。•who•yourvariableare:•abcd•想进一步了解这些变量的具体细节,则可以使用whos命令来查看。内蒙古科技大学21•了解了当前工作空间中的现有变量名之后,则可以使用clear命令来删除其中一些不再使用的变量名,这样可使得整个工作空间更简洁,节省一部分内存,例如想删除工作空间中的a,b两个变量,则可以使用下面的命令•clearab•如果想删除整个工作空间中所有的变量,则可以使用以下命令•clear•MATLAB可以使用上下光标键来前后查看已经键入的命令。内蒙古科技大学22•但仅靠一条一条地输入语句,MATLAB难以实现复杂功能,为了实现诸如循环、条件、分支等功能,MATLAB利用了m文件,m文件是由一系列的MATLAB语句组成。内蒙古科技大学23•MATLAB实际上可以认为是一种解释性语言,用户可以在MATLAB工作环境下一条一条地键入命令,也可以直接键入用MATLAB的语言编写的m文件名,或它们结合起来使用,这样MATLAB软件对此命令或m文件中各条命令进行翻译,然后在MATLAB环境下对它进行处理,最后返回运算结果。所以说MATLAB语言的结构可用下式进行描述•MATLAB语言=窗口命令+m文件内蒙古科技大学241.2.2MATLAB的磁盘文件•由于MATLAB本身可以被认为是一高效的语言,所以用它可编写出具有特殊意义的磁盘文件来,这些磁盘文件是由一系列的MATLAB语句组成,它既可能是一系列窗口命令语句,又可以是由各种控制语句和说明语句构成的函数文件。•由于它们都是由ASCII码构成的,其扩展名均为“.m”,故统称为m文件。内蒙古科技大学25•1.文本文件•文本文件是一系列的MATLAB语句组成,它类似于DOS下的批处理文件,在MATLAB的提示符下直接键入文本文件名,便可自动执行文件中的一系列命令,直至给出最终结果。•文本文件在工作空间中运算的变量为全局变量。26例1-1求函数在x=-4时的值。解首先建立以下文本文件3xxymyfile.m%thisisanexamplex1=abs(x)x2=sqrt(x1)+x^3y=x2当以上文本文件myfile.m建立后,在MATLAB命令窗口中输入命令x=-4;myfile内蒙古科技大学27•x1=•4•x2=•-62•y=•-62•这里执行的中间变量x1,x2都被保存下来,这与下面的函数文件是不同的。内蒙古科技大学28•2.函数文件•函数文件的功能是建立一个函数,且这个函数可以同MATLAB的库函数一样使用,它与文本文件不同,在一般情况下不能单独键入函数文件的文件名来运行一个函数文件,它必须由其它语句来调用,函数文件允许有多个输入参数和多个输出参数值,其基本格式如下•function[f1,f2,f3,…]=fun(x,y,z,…)•注释说明语句•函数体语句•其中x,y,z,…是形式输入参数;而f1,f2,f3,…是返回的形式输出参数值;fun是函数名。内蒙古科技大学29•实际上,函数名一般就是这个函数文件的磁盘文件名,注释语句段的内容同样可用help命令显示出来。•调用一个函数文件只需直接使用与这个函数一致的格式•[y1,y2,y3,…]=fun(i,j,k,…)•其中i,j,k,…是相应的实际输入参数,而y1,y2,y3,…是相应的实际输出参数值。30例1-2求函数在x1=-2,x2=3,x3=1时的值例首先建立函数文件myfunc.mfunction[y1,y2]=myfunc(x1,x2,x3)z1=3*x1.^2;z2=(x2+x3)y1=z1+z2;y2=z1-z2;322123221133xxxyxxxy内蒙古科技大学31•当以上函数文件myfunc.m建立后,