版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一部分 MATLAB应用基础1.1 MATLAB软件在信号与系统中的应用介绍MATLAB的名称源自Matrix Laboratory,1984年由美国Mathworks公司推向市场。它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作。1993年MathWorks公司从加拿大滑铁卢大学购得MAPLE软件的使用权,从而以MAPLE为“引擎”开发了符号数学工具箱(Symbolic Math Toolbox)。MATLAB软件包括五大通用功能:数值计算功能
2、(Nemeric);符号运算功能(Symbolic);数据可视化功能(Graphic);数据图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MATLAB命令窗口。该软件有三大特点:一是功能强大;二是界面友善、语言自然;三是开放性强。目前,Mathworks公司已推出30多个应用工具箱。MATLAB在线性代数、矩阵分析、数值及优化、数理统计和随机信号分析、电路与系统、系统动力学、信号和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统、以及财政金融等众多领域的理论研究和工程设计中得到
3、了广泛应用。MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能能基本满足信号与系统课程的需求。例如,解微分方程、傅里叶正反变换、拉普拉斯正反变换、z正反变换等。MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲激响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析、零极点图绘制等内容。数值计算仿真分析可以帮助学生更深入理解信号与系统的理论知识,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础。1.2
4、 MATLAB软件使用入门1.2.1 MATLAB的运行方式安装好后的MATLAB可以从桌面快捷方式启动,也可以从Windows开始菜单中启动。MATLAB的程序可以用两种运行方式:指令运行方式和M文件运行方式。指令运行方式通过直接在指令窗口中输入指令来实现计算或作图功能。当解决问题所需的指令较少时,可以采用此运行方式。M文件运行方式是先建立编辑保存M文件,然后在M文件编辑窗口菜单中运行;或者在指令窗口中输入此文件名,回车运行。当解决问题所需的指令较多时,了采用M文件的方式。1.2.2 MATLAB软件的环境介绍MATLAB在Windows、Linux、Mac操作系统下都可以运行,本书以Win
5、dows 操作系统MATLAB 7.1版本进行应用介绍。MATLAB 软件的工作桌面由标题栏、菜单栏、工具栏、指令窗口(Command Window)、工作空间窗口(Workspace)、当前目录窗口(Current Directory)、历史命令窗口(Command History)及状态栏组成,从而为用户使用MATLAB提供了集成的交互式图形界面,如图1-1所示。 Simulink模块库 图形用户界面开发环境 代码分析器 当前工作目录 工作目录设置 快捷开始菜单 工作区窗口 指令窗口 当前目录浏览器窗口 历史指令图1-1 MATLAB主窗口MATLAB的命令窗口是接收用户输入命令及输出数据
6、显示的窗口,几乎所有的MATLAB行为都是在命令窗口进行的。当启动MATLAB软件时,命令窗口就做好了接收指令和输入的准备,并出现命令提示符(>>)。在命令提示符后输入指令通常会创建一个或多个变量。变量可以是多种类型的,包括函数和字符串,但通常的变量只是数据。这些变量被放置在MATLAB的工作空间中,工作空间窗口提供了变量的一些重要信息,包括变量的名称、维数大小、占用内存大小、以及数据类型等信息。查看工作空间的另一种方法是使用whos命令。在命令提示符后输入whos命令,工作空间中的内容概要将作为输出显示在命令窗口中。有的命令可以用来清除不必要的数据,同时释放部分系统资源。clea
7、r命令可以用来清除工作空间的所有变量,如果要清除某一特定变量则需要在clear命令后加上该变量的名称。另外,clc命令用来清除命令窗口的内容。如果希望将MATLAB所创建的变量及重要数据保留下来,则使用save命令,并在其后加上文件名,即可将整个工作空间保存为一个扩展名为.mat的文件。使用load命令,并在其后加上文件名,则可将MATLAB数据文件(.mat文件)中的数据加载到工作空间中。MATLAB历史命令窗口记录了每次输入的命令。在该窗口中可以对以前的历史命令进行查看、复制或者直接运行。对于初学者而言,需要掌握的最重要且最有用的命令应为help命令。MATLAB命令和函数有数千个,而且许
8、多命令的功能非常强大,调用形式多样。要想了解一个命令或函数,只需在命令提示符后输入help,并加上该命令或函数的名称,则MATLAB会给出其详细帮助信息。另外,MATLAB还精心设计了演示程序系统(Demo),内容包括MATLAB的内部主要函数和各个工具箱(Toolbox)的使用。初学者可以方便地通过这些演示程序及其给出的程序源代码进行直观的感受和学习。用户可以通过两种途径打开演示程序系统。一是在命令窗口中输入demo或demos命令并按Enter键;二是选择“help”“Demos”菜单命令。1.3 MATLAB软件基本运算1.3.1 MATLAB软件的数值计算1. 算术运算MATLAB可以
9、像一个简单的计算器一样使用,不论是实数运算还是复数运算都能轻松完成。标量的加法、减法、除法和幂运算均可通过常规符号“+”、“-”、“*”、“/”、以及“”来完成。对于复数中的虚数单位,MATLAB采用预定义变量i或j表示,即i=j=。因此,一个复常量可用直角坐标形式来表示,例如,>>A=-3-i*4A= -3.0000 - 4.0000i将复常量-3-i4赋予了变量A。一个复常量还可用极坐标的形式来表示,例如,>>B=2*exp(i*pi/6)B= 1.7321 + 1.0000i其中,pi是MATLAB预定义变量,pi=。 复数的实部和虚部可以通过real和imag运
10、算符来实现,而复数的模和辐角可以通过abs和angle运算符来实现。但应注意辐角的单位为弧度。例如,复数A的模和辐角、复数B的实部和虚部的计算分别为>>A_mag=abs(A)A_mag=5>>A_rad=angle(A)A_rad= -2.2143>>B_real=real(B)B_real= 1.7321>>B_imag=imag(B)B_imag= 1.0000如果将弧度值用“度”来表示,则可进行转换,即>>A_deg=angle(A)*180/piA_deg= -126.8699复数A的模可表示为,因此,其共轭复数可通过con
11、j命令来实现,例如,>>A_mag=sqrt(A*conj(A)A_mag= 52. 向量运算向量是组成矩阵的基本元素之一,MATLAB具有关于向量运算的强大功能。一般地,向量被分为行向量和列向量。生成向量的方法有很多,我们主要介绍两种。直接输入向量:即把向量中的每个元素列举出来。向量元素要用“ ”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。例如,>>A=1,3,5,21A= 1 3 5 21>>B=1;3;5;21B= 1 3 5 21利用冒号表达式生成向量:这种方法用于生成等步长或均匀等分的行向量,其表达式为x=x0:step:x
12、n。其中,x0为初始值;step表示步长或增量;xn为结束值。如果step值缺省,则步长默认为1。例如,>>C=0:2:10C= 0 2 4 6 8 10>>D=0:10D= 0 1 2 3 4 5 6 7 8 9 10在连续时间信号和离散时间信号的表示过程中,我们经常要用到冒号表达式。例如,对于范围内的连续信号,可用冒号表达式“t=0:0.001:1;”来近似表达该区间,此时,向量t表示该区间以0.001为间隔的1001个点。如果一个向量或一个标量与一个数进行运算,即“+”、“-”、“*”、“/”、以及“”运算,则运算结果是将该向量的每一个元素与这个数逐一进行相应的运
13、算所得到的新的向量。例如,>>C=0:2:10;>>E=C/4E= 0 0.5000 1.0000 1.5000 2.0000 2.5000其中,第一行语句结束的分号是为了不显示C的结果;第二句没有分号则显示出E的结果。一个向量中元素的个数可以通过命令“length”获得,例如,>>t=0:0.001:1;>>L=length(t)L= 1001(3)矩阵运算MATLAB又称矩阵实验室,因此,MATLAB中矩阵的表示十分方便。例如,输入矩阵在MATLAB命令窗口中可输入下列命令得到,即>>a=11 12 13;21 22 23;31
14、32 33a= 11 12 13 21 22 23 31 32 33其中,命令中整个矩阵用括号“ ”括起来;矩阵每一行的各个元素必须用逗号“,”或空格分开;矩阵的不同行之间必须用分号“;”或者按Enter键分开。在矩阵的加减运算中,矩阵维数相同才能实行加减运算。矩阵的加法或减法运算是将矩阵的对应元素分别进行加法或减法运算。在矩阵的乘法运算中,要求两矩阵必须维数相容,即第一个矩阵的列数必须等于第二个矩阵的行数。例如,>>a=1 2 3;4 5 6 a= 1 2 3 4 5 6>>b=1 2; 3 4;5 6b= 1 2 3 4 5 6>>c=a*bc= 22
15、28 49 64MATLAB中矩阵的点运算指维数相同的矩阵位置对应元素进行的算术运算,标量常数可以和矩阵进行任何点运算。常用的点运算包括“.*”、“./”、“.”、“.”等。矩阵的加法和减法是在对应元素之间进行的,所以不存在点加法或点减法。 点乘运算,又称Hadamard乘积,是指两维数相同的矩阵或向量对应元素相乘,表示为C=A.*B。点除运算是指两维数相同的矩阵或向量中各元素独立的除运算,包括点右除和点左除。其中,点右除表示为CA./B,意思是A对应元素除以B对应元素;点左除表示为CA.B,意思是B对应元素除以A对应元素。点幂运算指两维数相同的矩阵或向量各元素独立的幂运算,表达式为CA.B。
16、【实例1-1】 已知t为一向量,用MATLAB命令计算在区间上对应的值。解:表达式中的运算都是点运算,MATLAB源程序为>>t=0:0.01:1;>>y=(sin(t).*exp(-2*t)+5)./(cos(t)+t.2+1);>>plot(t,y),xlabel('t'),ylabel('y')这里,我们未将y向量的结果显示出来,而是利用plot命令将结果绘出图形来,如图1-2所示。图1-2 实例1-1的结果1.3.2 MATLAB软件的符号运算MATLAB符号运算工具箱提供的函数命令是专门研究符号运算功能的。符号运算是
17、指符号之间的运算,其运算结果仍以标准的符号形式表达。符号运算是MATLAB的一个极其重要的组成部分,符号表示的解析式比数值解具有更好的通用性。在使用符号运算之前必须定义符号变量,并创建符号表达式。定义符号变量的语句格式为syms 变量名其中,各个变量名须用空格隔开。例如,定义x、y、z三个符号变量的语句格式为>>syms x y z我们可以用whos命令来查看所定义的符号变量,即>>clear>>syms x y z>>whosName Size Bytes Class x 1x1 126 sym object y 1x1 126 sym obj
18、ect z 1x1 126 sym objectGrand total is 6 elements using 378 bytes可见,变量x、y、z必须通过符号对象定义,即sym object,才能参与符号运算。另一种定义符号变量的语句格式为sym('变量名')例如,x、y、z三个符号变量定义的语句格式为>>x=sym('x');>>y=sym('y');>>z=sym('z');sym语句还可以用来定义符号表达式,语句格式为sym('表达式')例如,定义表达式x+1为符号表达
19、式对象,语句为>>sym('x+1');另一种创建符号表达式的方法是先定义符号变量,然后直接写出符号表达式。例如,在MATLAB中创建符号表达式,其MATLAB源程序为>>syms t>>y=(sin(t).*exp(-2*t)+5)./(cos(t)+t.2+1)y=(sin(t)*exp(-2*t)+5)/(cos(t)+t2+1)例如,符号算术运算的MATLAB源程序为>>clear>>syms a b>>f1=1/(a+1); >>f2=2*a/(a+b); >>f3=(a+
20、1)*(b-1)* (a-b); >>f1+f2ans=1/(a+1)+2*a/(a+b)>>f1*f3ans= (b-1)*(a-b)>>f1/f3ans=1/(a+1)2/(b-1)/(a-b)在符号运算中,可以用“simple”或者“simplify”函数来化简运算结果,例如,>>syms x>>f1=sin(x)2; >>f2=cos(x)2; >>y=f1+f2y=sin(x)2+cos(x)2>>y=simplify(y)y=11.4 MATLAB的图形绘制1.4.1 二维绘图MATLA
21、B的plot命令是绘制二维曲线的基本函数,它为数据的可视化提供了方便的途径。例如,函数关于变量x的曲线绘制的语句格式为>>plot(x,y)其中,输出以向量x为横坐标,向量y为纵坐标,且按照向量x、y中元素的排列顺序有序绘制图形。但向量x与y必须拥有相同的长度。绘制多幅图形的语句格式为>>plot(x1,y1,'str1',x2,y2,'str2',.)其中,用str1制定的方式,输出以x1为横坐标、y1为纵坐标的图形。用str2制定的方式,输出以x2为横坐标、y2为纵坐标的图形。若省略str,则MATLAB自动为每条曲线选择颜色与线型。
22、图形完成后,可以通过几个命令来调整显示结果。如grid on用来显示格线;axis(xmin,xmax,ymin,ymax)函数调整坐标轴的显示范围。其中,括号内的“,”可用空格代替;xlabel和ylabel命令可为横坐标和纵坐标加标注,标注的字符串必须用单引号引起来;title命令可在图形顶部加注标题。【实例1-2】 用MATLAB命令绘制函数的波形图。解:MATLAB源程序为>>t=0:0.01:5;>>y=sin(5*pi*t)+1./(cos(pi*t)+2);>>plot(t,y)>>axis(0,5,-1,2.5)>>x
23、label('t'),ylabel('y'),>>grid on程序运行结果如图1-3所示。图1-3 实例1-2的函数波形图用subplot命令可在一个图形窗口中按照规定的排列方式同时显示多个图形,方便图形的比较。其语句格式为>>subplot(m,n,p)或者>>subplot(mnp)其中,m和n表示在一个图形窗口中显示m行n列个图像,p表示第p个图像区域,即在第p个区域作图。例如,比较正弦信号相位差的MATLAB源程序为>>t=0:0.01:3;>>y1=sin(2*pi*t);>>y
24、2=sin(2*pi*t+pi/6);>>subplot(211),plot(t,y1)>>xlabel('t'),ylabel('y1'),title('y1=sin(2*pi*t)')>>subplot(212),plot(t,y2)>>xlabel('t'),ylabel('y2'),title('y2=sin(2*pi*t+pi/6)')程序运行结果如图1-4所示。图1-4 正弦信号相位差比较除了plot命令外,MATLAB提供了ezplot命
25、令绘制符号表达式的曲线,其语句格式为>>ezplot(y, a,b)其中,a,b参数表示符号表达式的自变量取值范围,默认值为。【实例1-3】 利用MATLAB的ezplot命令绘出函数的波形图。解:MATLAB源程序为>>syms x>>y='-16*x2+64*x+96'>>ezplot(y,0,5)>>xlabel('t'),ylabel('y'),>>grid on图1-5 实例1-3的函数波形图程序运行结果如图1-5所示。在绘图过程中,我们可利用“hold on”命令
26、来保持当前图形,继续在当前图形状态下绘制其他图形,即可在同一窗口下绘制多幅图形。“hold off”命令用来释放当前图形窗口,绘制下一幅图形作为当前图形。附录1.4.2 三维绘图1.2.4 M文件MATLAB是解释型语言,也就是说在MATLAB命令行中输入的命令在当前MATLAB进程中被解释运行,无需编译和链接等。MATLAB文件分为两类:M脚本文件(M-Script)和M函数(M-function),它们均为由ASCII码构成的文件,该文件可直接在文本编辑器中编写,称为M文件,保存的文件扩展名是.m。M脚本文件包含一族由MATLAB语言所支持的语句,并保存为M文件。它类似于DOS下的批处理文
27、件,不需要在其中输入参数,也不需要给出输出变量来接受处理结果。脚本仅是若干命令或函数的集合,用于执行特定的功能。其执行方式很简单,用户只需在MATLAB的提示符>>下键入该M文件的文件名,这样MATLAB就会自动执行该M文件中的各条语句,并将结果直接返回到MATLAB工作空间中。脚本M文件实际上是一系列MATLAB命令的集合,它的作用与在MATLAB命令窗口输入的一系列命令等效。M函数文件不同于M脚本文件,是一种封装结构,通过外界提供输入量而得到函数文件的输出结果。函数是接受入口参数返回出口参数的M文件,程序在自己的工作空间中操作变量,与工作空间分开,无法访问。M函数文件和M脚本文
28、件都是在编辑器中生成,通常以关键字function引导“函数声明行”,并罗列出函数与外界联系的全部“标称”输入输出宗量。它的一般形式为function output 1, output 2, = functionname(input1, input2,)%output 1, output 2, = functionname(input1, input2,) Functionname%Some comments that explain what the function does go here.MATLAB command 1;MATLAB command 2;MATLAB command
29、3;该函数的M文件名是functionname.m,在MATLAB命令窗口中可被其他M文件调用,例如,>> output1, output2 = functionname(input1, input2)注意,MATLAB忽略了“%”后面的本行内所有文字,因此,可以利用该符号写注释。以“;”结束一行可以停止输出打印,在一行的最后输入“”可以续行,以便在下一行继续输入指令。1.2.5 MATLAB程序流程控制MATLAB与其他高级编程语言一样,是一种结构化的编程语言。MATLAB程序流程控制结构一般可分为顺序结构、循环结构、以及条件分支结构。MATLAB中实现顺序结构的方法非常简单,只
30、需将程序语句按顺序排列即可。在MATLAB中,循环结构可以由for语句循环结构和while语句循环结构两种方式来实现。条件分支结构可以由if语句分支结构和switch语句分支结构两种方式来实现。下面我们主要介绍这几种程序流程控制。1. for循环结构for循环结构用于在一定条件下多次循环执行处理某段指令,其语法格式为for 循环变量初值:增量:终值循环体end循环变量一般被定义为一个向量,这样循环变量从初值开始,循环体中的语句每被执行一次,变量值就增加一个增量,直到变量等于终值为止。增量可以根据需要设定,默认时为1。end代表循环体的结束部分。例如,用for循环结构求1+2+3+100的和,其
31、MATLAB源程序为>>sum=0;>>for i=1:1:100sum=sum+i;end>>sumsum= 50502. while循环结构while循环结构也用于循环执行处理某段指令,但是与for循环结构不同的是在执行循环体之前先要判断循环执行的条件是否成立,即逻辑表达式为“真”还是“假”,如果条件成立,则执行;如果条件不成立,则终止循环。其语法格式为while 逻辑表达式循环体end例如,用while循环结构求1+2+3+100的和,其MATLAB源程序为>>sum=0;i=0;>>while i<100i=i+1;su
32、m=sum+i;end>>sumsum= 5050从上述MATLAB源程序可以看出,while循环结构是通过判断逻辑表达式i<100是否为“真”,而决定是否执行循环体。3. if分支结构if条件分支结构是通过判断逻辑表达式是否成立来决定是否执行制定的程序模块。其语法格式有两种,一种是单分支结构;另一种为多分支结构。其中,单分支结构语法格式为if 逻辑表达式程序模块end单分支结构语法格式的含义是,如果逻辑表达式为“真”,则执行程序模块,否则跳过该分支结构,按顺序结构执行下面的程序。多分支结构的语法格式为if 逻辑表达式1程序模块1else if 逻辑表达式2 (可选)程序模块
33、2else 程序模块nend多分支结构语法格式可理解为:首先判断if条件分支结构中的逻辑表达式1是否成立,如果成立则执行程序模块1;否则继续判断else if条件分支结构中的逻辑表达式2,如果成立则执行程序模块2;依次下去,如果结构中所有条件都不成立,则执行程序模块n。例如,用if条件分支结构可实现百分制考试分数分级,其MATLAB源程序为>>s=input('输入score= '); %屏幕提示输入x=,由键盘输入值赋给x>>if s>=90 rank='A'elseif s>=80 rank='B'else
34、if s>=70 rank='C'elseif s>=60 rank='D'else rank='E'end4. switch分支结构switch分支结构是根据表达式的取值结果不同来选择执行的程序模块,其语法格式为switch 表达式case 常量1程序模块1case 常量2 程序模块2otherwise程序模块nend其中,switch后面的表达式可以是任何类型,如数字、字符串等。当表达式的值与case后面的常量相等时,就执行对应的程序模块;如果所有常量都与表达式的值不等时,则执行otherwise后面的程序模块。例如,用switc
35、h分支结构也可实现百分制考试分数分级,其MATLAB源程序为>>s=input('输入score= '); >>switch fix(s/10) %利用fix函数舍去小数部分取最近整数 case 10,9 rank='A' case 8 rank='B' case 7 rank='C' case 6 rank='D' otherwise rank='E'end除上述几种程序流程控制结构外,MATLAB为实现交互控制程序流程还提供了continue、break、pause、in
36、put、error、disp等命令。读者可通过help命令查看。附录一 MATLAB环境表1.1命令窗口中行编辑的常用操作键键名作用键名作用向前调回已输入过的命令行Home使光标移到当前行的开头向后调回已输入过的命令行End使光标移到当前行的末尾在当前行中左移光标Delete删去光标右边的字符在当前行中右移光标Backspace删去光标左边的字符PageUp向前翻阅当前窗口中的内容Esc清除当前行的全部内容Page Down向后翻阅当前窗口中的内容CTRL+C中断MATLAB命令的运行表1.2MATLAB常用标点符号的功能名称符号功能空格用于输入变量之间的分隔符以及数组行元素之间的分隔符。逗号
37、,用于要显示计算结果的命令之间的分隔符;用于输入变量之间的分隔符;用于数组行元素之间的分隔符。点号.用于数值中的小数点。分号;用于不显示计算结果命令行的结尾;用于不显示计算结果命令之间的分隔符;用于数组元素行之间的分隔符。冒号:用于生成一维数值数组,表示一维数组的全部元素或多维数组的某一维的全部元素。百分号%用于注释的前面,在它后面的命令不需要执行。单引号 用于括住字符串。圆括号( )用于引用数组元素;用于函数输入变量列表;用于确定算术运算的先后次序。方括号 用于构成向量和矩阵;用于函数输出列表。花括号 用于构成元胞数组。下划线-用于一个变量、函数或文件名中的连字符。续行号用于把后面的行与该行
38、连接以构成一个较长的命令。注意:以上的符号一定要在英文状态下输入,因为MATLAB不能识别中文标点符号。§ clc:用于清空命令窗口中的显示内容。表1.3数据显示的Format格式命令格式含义例子formatformat short(默认)通常保证小数点后四位有效;大于1000的实数,用5位有效数字的科学计数法显示314.159显示为314.15903141.59显示为3.1416e+003format short e5位科学计数法表示显示为3.1416e+000format short g从format short和format short e中自动选择最佳计数方式显示为3.141
39、6format long15位数字表示显示为3.14159265358979format long e15位科学计数法表示显示为3.141592653589793e+000命令格式含义例子format long g从format long和format long e中自动选择最佳计数方式显示为3.1415926358979format rat近似有理数表示显示为355/113format hex十六进制表示显示为400921fb54442dl8format +正数、负数、零分别用、空格显示为+format bank表示(金融)元、角、分显示为3.14format compact在显示结果之间没
40、有空行的压缩格式format loose在显示结果之间有空行的稀疏格式表1.4 特殊变量表特殊变量取值特殊变量取值ans运算结果的默认变量名i或 ji=j=pi圆周率nargin函数的输入变量数目eps计算机的最小数nargout函数的输出变量数目flops浮点运算数realmin最小的可用正实数inf无穷大,如1/0realmax最大的可用正实数NaN或nan非数,如0/0、/、0×Matlab脚本文件和函数文件M文件有两种形式:M脚本文件和M函数文件。M函数文件的基本格式:函数声明行H1行(用%开头的注释行)在线帮助文本(用%开头)编写和修改记录(用%开头)函数体 函
41、数文件的特点:(1) 第一行总是以“function”引导的函数声明行; 函数声明行的格式: function 输出变量列表 = 函数名(输入变量列表) (2) 函数文件在运行过程中产生的变量都存放在函数本身的工作空间;(3) 当文件执行完最后一条命令或遇到“return”命令时,就结束函数文件的运行,同时函数工作空间的变量就被清除;(4) 函数的工作空间随具体的M函数文件调用而产生,随调用结束而删除,是独立的、临时的,在MATLAB运行过程中可以产生任意多个临时的函数空间。附录二 MATLAB常用命令函数表表2.1矩阵生成函数函数名功能zeros(m,n)产生m×
42、;n的全0矩阵ones(m,n)产生m×n的全1矩阵rand(m,n)产生均匀分布的随机矩阵,元素取值范围0.01.0。randn(m,n)产生正态分布的随机矩阵magic(N)产生N阶魔方矩阵(矩阵的行、列和对角线上元素的和相等)eye(m,n)产生m×n的单位矩阵zeros、ones、rand、randn和eye函数当只有一个参数n时,则为n×n的方阵;当eye(m,n)函数的m和n参数不相等时则单位矩阵会出现全0行或列。表2.2 常用矩阵翻转函数函数名功 能triu(X)产生X矩阵的上三角矩阵,其余元素补0。tril(X)产生X矩阵的下三角矩阵,其余元素补0
43、。flipud(X)使矩阵X沿水平轴上下翻转fliplr(X)使矩阵X沿垂直轴左右翻转flipdim(X,dim)使矩阵X沿特定轴翻转。dim=1,按行维翻转;dim=2,按列维翻转。rot90(X)使矩阵X逆时针旋转900表2.3 常用矩阵运算函数函数名功 能det(X)计算方阵行列式rank(X)求矩阵的秩,得出的行列式不为零的最大方阵边长。inv(X)求矩阵的逆阵,当方阵X的det(X)不等于零,逆阵X-1才存在。X 与X-1相乘为单位矩阵。v,d=eig(X)计算矩阵特征值和特征向量。如果方程Xv=vd存在非零解,则v为特征向量,d为特征值。diag(X)产生X矩阵的对角阵l,u=lu
44、(X)方阵分解为一个准下三角方阵和一个上三角方阵的乘积。l为准下三角阵,必须交换两行才能成为真的下三角阵。q,r=qr(X)m×n阶矩阵X分解为一个正交方阵q和一个与X同阶的上三角矩阵r的乘积。方阵q的边长为矩阵X的n和m中较小者,且其行列式的值为1。u,s,v=svd(X)m×n阶矩阵X分解为三个矩阵的乘积,其中u,v为n×n阶和m×m阶正交方阵,s为m×n阶的对角阵,对角线上的元素就是矩阵X的奇异值,其长度为n和m中的较小者。表2.4 基本函数函数名含义函数名含义函数名含义abs绝对值或者复数模atan反正切ceil向最接近-取整sqrt平
45、方根atan2第四象限反正切sign符号函数real实部sinh双曲正弦rem求余数留数imag虚部cosh双曲余弦pow22的幂conj复数共轭tanh双曲正切exp自然指数sin正弦rat有理数近似log自然对数cos余弦mod模除求余log10以10为底的对数tan正切round4舍5入到整数gamma伽吗函数asin反正弦fix向最接近0取整bessel贝赛尔函数acos反余弦floor向最接近-取整表2.5 矩阵和数组运算对比表数组运算矩阵运算命令含义命令含义A+B对应元素相加A+B与数组运算相同A-B对应元素相减A-B与数组运算相同S.*B标量S分别与B元素的积S*B与数组运算相同
46、A.*B数组对应元素相乘A*B内维相同矩阵的乘积S./BS分别被B的元素左除SBB矩阵分别左除SA./BA的元素被B的对应元素除A/B矩阵A右除B即A的逆阵与B相乘B.A结果一定与上行相同BAA左除B(一般与上行不同)A.SA的每个元素自乘S次ASA矩阵为方阵时,自乘S次A.SS为小数时,对A各元素分别求非整数幂,得出矩阵ASS为小数时,方阵A的非整数乘方S.B分别以B的元素为指数求幂值SBB为方阵时,标量S的矩阵乘方A.非共轭转置,相当于conj(A)A共轭转置exp(A)以自然数e为底,分别以A的元素为指数求幂expm(A)A的矩阵指数函数log(A)对A的各元素求对数logm(A)A的矩
47、阵对数函数sqrt(A)对A的各元素求平方根sqrtm(A)A的矩阵平方根函数f(A)求A各个元素的函数值funm(A,FUN)矩阵的函数运算附录三 基本绘图命令1. 基本绘图命令plotplot(x) 绘制x向量曲线plot命令是MATLAB中最简单而且使用最广泛的一个绘图命令,用来绘制二维曲线。语法: plot(x) %绘制以x为纵坐标的二维曲线 plot(x,y) %绘制以x为横坐标y为纵坐标的二维曲线说明:x和y可以是向量或矩阵。plot(x1,y1,x2,y2,)绘制多条曲线plot命令还可以同时绘制多条曲线,用多个矩阵对为参数,MATLAB自动以不同的颜色绘制不同曲线。每一对矩阵(
48、xi,yi)均按照前面的方式解释,不同的矩阵对之间,其维数可以不同。2多个图形绘制的方法1. 指定图形窗口如果需要多个图形窗口同时打开时,可以使用figure语句。语法: figure(n) %产生新图形窗口说明:如果该窗口不存在,则产生新图形窗口并设置为当前图形窗口,该窗口名为“Figure No.n”,而不关闭其它窗口。l2. 同一窗口多个子图如果需要在同一个图形窗口中布置几幅独立的子图,可以在plot命令前加上subplot命令来将一个图形窗口划分为多个区域,每个区域一幅子图。语法:subplot(m,n,k)%使(m×n)幅子图中的第k幅成为当前图说明:将图形窗口划分为m
49、215;n幅子图,k是当前子图的编号,“,”可以省略。子图的序号编排原则是:左上方为第1幅,先向右后向下依次排列,子图彼此之间独立。3. 同一窗口多次叠绘为了在一个坐标系中增加新的图形对象,可以用“hold”命令来保留原图形对象。语法: hold on %使当前坐标系和图形保留 hold off %使当前坐标系和图形不保留 hold %在以上两个命令中切换说明:在设置了“hold on”后,如果画多个图形对象,则在生成新的图形时保留当前坐标系中已存在的图形对象,MATLAB会根据新图形的大小,重新改变坐标系的比例。4. 双纵坐标图语法: plotyy(x1,y1,x2,y2)%以左、右不同纵轴绘制两条曲线说明:左纵轴用于(x1,y1)数据,右纵轴用于(x2,y2)数据来绘制两条曲线。坐标轴的范围、刻度都自动产生。3曲线的线型、颜色和数据点形plot命令还可以设置曲线的线段类型、颜色和数据点形等,如表所示。 表3.1线段、颜色与数据点形颜色数据点间连线数据点形类型符号类型符号类型符号类型符号黄色品红色(紫色)青色红色绿色蓝色白色黑色y(Ye
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年初二下道德试题及答案
- 期中考试后教职工大会校长讲话:一位老师全天行程曝光-“备课时间是挤出来的填表时间是刚性的”
- 2026年烟花爆竹从业人员安全培训教材
- 深度解析(2026)《GBT 29809-2013信息技术 学习、教育和培训 内容包装XML绑定》
- 深度解析(2026)《GBT 29726-2013海湾围填海规划环境影响评价技术导则》
- 《GBT 6916-2008湿热带电力电容器》(2026年)合规红线与避坑实操手册
- 《GAT 1074-2013生物样品中γ-羟基丁酸的气相色谱-质谱和液相色谱-串联质谱检验方法》(2026年)合规红线与避坑实操手册
- 《FZT 21005-2021大豆蛋白复合纤维毛条》(2026年)合规红线与避坑实操手册
- 《CYT 96-2013电子书内容术语》(2026年)合规红线与避坑实操手册
- 智能光技术基础实训 5
- 2026年辽宁省沈阳市铁西区中考数学一模试卷(含答案)
- 铁路信号设备操作规程
- 机加工供应商考核制度
- 产科全身麻醉指南与专家共识2025
- 2026年中考英语预测【时文阅读】2026年欢乐春节+吉祥马
- 2025年海淀卫校新生面试题库及答案
- T∕CAFFCI 1-2018 化妆品用原料 甘草酸二钾
- 电玩设备转让合同范本
- 机械维修专项施工方案
- 教科版四年级科学上册《第1单元声音 单元复习》教学课件
- 急诊科患者VTE风险评估制度
评论
0/150
提交评论