自学matlab之2013b_第1页
自学matlab之2013b_第2页
自学matlab之2013b_第3页
自学matlab之2013b_第4页
自学matlab之2013b_第5页
已阅读5页,还剩243页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、MATLAB语言的发展lmatlab语言是由美国的Clever Moler博士于1980年开发的;l设计者的初衷是为解决“线性代数”课程的矩阵运算问题;l取名MATLAB即Matrix Laboratory 矩阵实验室的意思;它将一个优秀软件的易用性与可靠性、通用性与它将一个优秀软件的易用性与可靠性、通用性与专业性专业性 、一般目的的应用与高深的科学技术应用、一般目的的应用与高深的科学技术应用有机地相结合起来有机地相结合起来lMATLAB是一种直译式的高级语言,比其它程是一种直译式的高级语言,比其它程序设计语言容易。序设计语言容易。MATLAB语言与其它语言的语言与其它语言的关系仿佛和关系

2、仿佛和C语言与汇编语言的关系一样语言与汇编语言的关系一样lMATLAB已经不仅仅是一个已经不仅仅是一个“矩阵实验室矩阵实验室”了,它集科学计算、图象处理;声音处理于了,它集科学计算、图象处理;声音处理于一身,并提供了丰富的一身,并提供了丰富的Windows图形界面图形界面设计方法设计方法lMATLAB语言是功能强大的计算机高级语语言是功能强大的计算机高级语言言, 它以超群的风格与性能风靡全世界它以超群的风格与性能风靡全世界, 成成功地应用于各工程学科的研究领域功地应用于各工程学科的研究领域lMATLAB最早在美国是作为大学工科学生必修最早在美国是作为大学工科学生必修的计算机语言之一的计算机语言

3、之一 lMATLAB语言已在我国推广使用,现在已应用语言已在我国推广使用,现在已应用于各学科研究部门和许多高等院校于各学科研究部门和许多高等院校; lMATLAB语言不受计算机硬件的影响,现有的语言不受计算机硬件的影响,现有的硬件条件下的计算机都可以使用。当然,随着硬件条件下的计算机都可以使用。当然,随着应用功能的增强,对硬件的要求也在提高。应用功能的增强,对硬件的要求也在提高。l工业研究与开发工业研究与开发l数学教学,特别是线性代数数学教学,特别是线性代数l数值分析和科学计算方面的教学与研究数值分析和科学计算方面的教学与研究l电子学、控制理论和物理学等工程和科学学科电子学、控制理论和物理学等

4、工程和科学学科方面的教学与研究方面的教学与研究l经济学、化学和生物学等计算问题的所有其他经济学、化学和生物学等计算问题的所有其他领域中的教学与研究领域中的教学与研究http:/l强大的数值(矩阵)运算功能强大的数值(矩阵)运算功能l广泛的符号运算功能广泛的符号运算功能l高级与低级兼备的图形功能(计算结果的可视高级与低级兼备的图形功能(计算结果的可视化功能)化功能)l可靠的容错功能可靠的容错功能l应用灵活的兼容与接口功能应用灵活的兼容与接口功能l信息量丰富的联机检索功能信息量丰富的联机检索功能l语言简洁紧凑,语法限制不严,程序设计语言简洁紧凑,语法限制不严,程序设计自由度大,可移植性好自由度大,

5、可移植性好l运算符、库函数丰富运算符、库函数丰富l图形功能强大图形功能强大l界面友好、编程效率高界面友好、编程效率高l扩展性强扩展性强lMATLAB主工具箱主工具箱l符号数学工具箱符号数学工具箱lSIMULINK仿真工具箱仿真工具箱l控制系统工具箱控制系统工具箱l信号处理工具箱信号处理工具箱l图象处理工具箱图象处理工具箱l通讯工具箱通讯工具箱l系统辨识工具箱系统辨识工具箱l神经元网络工具箱神经元网络工具箱l金融工具箱金融工具箱l MATLAB的工具箱大致可以分为两类:功的工具箱大致可以分为两类:功能型工具箱和领域型工具箱。许多学科,能型工具箱和领域型工具箱。许多学科,在在MATLAB中都有专用

6、工具箱,但中都有专用工具箱,但MATLAB语言的扩展开发还远远没有结束,语言的扩展开发还远远没有结束,各学科的相互促进,将使得各学科的相互促进,将使得MATLAB更加更加强大强大菜单栏和工具栏菜单栏和工具栏工作工作空间空间窗口窗口当前目当前目录窗口录窗口历史命历史命令窗口令窗口命令窗口l历史命令窗口保存用户输入过的历史命令,为历史命令窗口保存用户输入过的历史命令,为用户下次使用同一命令提供方便。用户下次使用同一命令提供方便。l历史命令窗口中保存的历史命令记录:每次开历史命令窗口中保存的历史命令记录:每次开启启MATLAB的时间及其每次开启的时间及其每次开启MATLAB后后在命令窗口中运行过的所

7、有指令在命令窗口中运行过的所有指令l历史命令窗口中的简单操作:历史命令窗口中的简单操作:用鼠标双击一条命令,即可在命令窗口中立即执行用鼠标双击一条命令,即可在命令窗口中立即执行选中命令,利用鼠标右键可以复制该指令选中命令,利用鼠标右键可以复制该指令利用组合操作【利用组合操作【Ctr+Ctr+鼠标左键】可以选中多条命令鼠标左键】可以选中多条命令进行复制或操作(按鼠标右键出项的功能选项)进行复制或操作(按鼠标右键出项的功能选项)l可以利用【可以利用【Edit】菜单中的选项清除历史记录】菜单中的选项清除历史记录l显示当前工作目录下存在的资源(文件或文件显示当前工作目录下存在的资源(文件或文件夹),是

8、默认保存当前文件的目录;夹),是默认保存当前文件的目录;l建议用户为自己建立一个专门的工作目录,用建议用户为自己建立一个专门的工作目录,用于存放自己创建的文件,并设为当前目录;于存放自己创建的文件,并设为当前目录;l把用户目录设置成当前目录的方法把用户目录设置成当前目录的方法利用窗口的交互界面设置利用窗口的交互界面设置利用命令设置:在命令窗口中输入命令利用命令设置:在命令窗口中输入命令 cd d:my-cd d:my-workwork,即可讲自己的用户目录设置成当前目录,即可讲自己的用户目录设置成当前目录lMATLAB的路径搜索器的路径搜索器lMATLAB的路径搜索顺序:的路径搜索顺序:在命令

9、窗口输入一个字符串在命令窗口输入一个字符串abcdabcd,MATLABMATLAB编辑编辑器做如下顺序的操作:器做如下顺序的操作:1.1.把把abcdabcd当成一个参数去检索;当成一个参数去检索;2.2.检查检查abcdabcd是否是一个内置的函数;是否是一个内置的函数;3.3.在默认目录下搜索文件名为:在默认目录下搜索文件名为:abcd.mabcd.m的文件的文件4.4.在搜索路径下的所有目录中搜索在搜索路径下的所有目录中搜索abcd.mabcd.m如果存在相同的名称,第一个搜索到就停止如果存在相同的名称,第一个搜索到就停止l改变搜索路径改变搜索路径利用命令和利用命令和File菜单选项可

10、以修改编辑搜索路径菜单选项可以修改编辑搜索路径l工作空间窗口显示当前内存中存在的变量及其工作空间窗口显示当前内存中存在的变量及其数值,也就是以前运行过的变量及其结果,内数值,也就是以前运行过的变量及其结果,内存中存在的变量就是当前能使用的变量;存中存在的变量就是当前能使用的变量;l可以利用可以利用clear命令清除内存变量命令清除内存变量l可以利用可以利用who和和whos两个指令查看内存变量两个指令查看内存变量的信息的信息l可以利用鼠标左键双击工作空间窗口中的变量可以利用鼠标左键双击工作空间窗口中的变量打开窗口查看该变量的详细数据打开窗口查看该变量的详细数据l用户编写程序时一般首先清除当前内

11、存中的变用户编写程序时一般首先清除当前内存中的变量信息,以免对自己的程序数据造成影响。量信息,以免对自己的程序数据造成影响。(程序变量名输入错误或变量没有定义)(程序变量名输入错误或变量没有定义)lDemo演示系统演示系统lMATLAB主包和各个工具包都有很好的演示主包和各个工具包都有很好的演示程序,该组演示程序采用交互式界面引导,操程序,该组演示程序采用交互式界面引导,操作方便。它有很好的演示示范作用,是其他书作方便。它有很好的演示示范作用,是其他书籍不能替代的,对学习和掌握籍不能替代的,对学习和掌握MATLAB都非都非常重要。常重要。l通过【通过【Help】菜单选项或通过命令【】菜单选项或

12、通过命令【Demos】都可以打开该演示系统都可以打开该演示系统l1. 绘制正弦曲线和余弦曲线。绘制正弦曲线和余弦曲线。x=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x);l2. 求方程求方程 3x4+7x3 +9x2-23=0的全部根。的全部根。p=3,7,9,0,-23; %建立多项式系数向量建立多项式系数向量x=roots(p) %求根求根l3. 求解线性方程组。求解线性方程组。a=2,-3,1;8,3,2;45,1,-9; b=4;2;17; x=inv(a)*bl常量常量同其他计算机语言一样,同其他计算机语言一样,MATLAB中使用的数据中使用的数据也可

13、分为也可分为常量和变量常量和变量。例如:例如:3.1 120 0.12e3 l.2e2 5e3 12i它们都是合法的它们都是合法的MATLAB常量,或者称为常量,或者称为数值数值。MATLAB中的复数类型常量可直接写成手写格式,中的复数类型常量可直接写成手写格式,这是与其他计算机语言的明显不同之处。这是与其他计算机语言的明显不同之处。在在MATLAB内部,每一个数据元素都是用双精度内部,每一个数据元素都是用双精度(Double, 8字节字节)来表示和存储的,大约有来表示和存储的,大约有16位有位有效数字。其数值有效范围约为效数字。其数值有效范围约为10-30810+308,这样,这样的取值范围

14、对于绝大多数情况下的数值计算已经足的取值范围对于绝大多数情况下的数值计算已经足够。够。 l变量变量MATLAB中也是使用变量来保存信息。变量由变中也是使用变量来保存信息。变量由变量名表示,变量的命名应遵循如下量名表示,变量的命名应遵循如下规则规则: 变量名必须以变量名必须以字母开头字母开头 变量名可以由字母、数字和下划线混和组成;但变量名可以由字母、数字和下划线混和组成;但不包含标点符号和空格不包含标点符号和空格 变量名变量名区分字母大小写区分字母大小写 变量名的变量名的字符长度字符长度不应超过不应超过31个个,其后的字符被,其后的字符被忽略忽略 l固定固定变量变量在MATLAB中还存在着一些

15、系统默认的特殊变量,即在MATLAB语句中若出现固定变量名,则系统就将其赋予默认值。 1l变量变量MATLAB的变量分为的变量分为字符变量字符变量和和数值变量数值变量两种,两种,字符变量必须用单引号括起来字符变量必须用单引号括起来 MATLAB和其他高级语言和其他高级语言不同不同的是,的是,MATLAB使使用变量时用变量时不需要预先对变量类型进行说明不需要预先对变量类型进行说明,MATLAB会自动根据所输入的数据来决定变量的会自动根据所输入的数据来决定变量的数据类型和分配存储空间。数据类型和分配存储空间。l变量的赋值变量的赋值MATLAB赋值语句有两种形式:赋值语句有两种形式:(1) 变量变量

16、=表达式表达式 (2) 表达式表达式lMATLAB赋值语句有两种形式:赋值语句有两种形式:(1) 变量变量=表达式表达式 (2) 表达式表达式其中其中“表达式表达式”是用运算符将有关运算量连接起来的是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。注式子,其结果是一个矩阵。注: :第二种语句形式下,第二种语句形式下,将表达式的值赋给将表达式的值赋给MATLABMATLAB的永久变量的永久变量。数值变量数值变量la=55.15lb=3.1415+alpi+a;字符变量字符变量la=happy new year 如果在语句的最后加分号,那么,如果在语句的最后加分号,那么,MATLABMATL

17、AB仅仅执行赋值操作,不再显示运算的结果。仅仅执行赋值操作,不再显示运算的结果。在一条语句中,如果表达式太复杂,一行在一条语句中,如果表达式太复杂,一行写不下,可以加上三个小黑点写不下,可以加上三个小黑点( (续行符续行符) )并并按下回车键,然后接下去再写。按下回车键,然后接下去再写。l例如下列语句例如下列语句: :ls=1-1/2+1/3-1/4+1/5-1/6+1/7-s=1-1/2+1/3-1/4+1/5-1/6+1/7- 1/8+1/9-1/10+1/11-1/12; 1/8+1/9-1/10+1/11-1/12;lMATLAB表达式表达式算术表达式。算术表达式。l运算符有:运算符有

18、:(加加)、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)l对于矩阵来说,左除和右除表示两种不同的除数矩阵和对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。被除数矩阵的关系。关系表达式。关系表达式。l运算符有:运算符有:(小于小于)、(大于大于)、=(大于大于或等于或等于)、=(等于等于)、=(不等于不等于)逻辑表达式。逻辑表达式。l运算符有:运算符有:&(与与)、|(或或)和和(非非)矩阵矩阵是是MATLAB进行数据处理和运算的基本单进行数据处理和运算的基本单元,元,MATLAB的大部分运算或命令都是在矩的大部分运算或命令都是在矩阵运算的意义下执行的。阵运

19、算的意义下执行的。相量相量是指只含有一行或一列的矩阵。是指只含有一行或一列的矩阵。标量标量是指通常意义上的一个数值,在是指通常意义上的一个数值,在MATLAB中也可以作为中也可以作为11的矩阵来处理。的矩阵来处理。l矩阵的矩阵的创建创建与与保存保存 直接输入法直接输入法创建矩阵创建矩阵 对于简单且维数较小的矩阵,创建矩阵的最佳方法对于简单且维数较小的矩阵,创建矩阵的最佳方法就是从键盘直接输入矩阵,即按矩阵行的顺序输入就是从键盘直接输入矩阵,即按矩阵行的顺序输入矩阵各元素。在输入过程中必须遵循一下矩阵各元素。在输入过程中必须遵循一下规则规则:l矩阵的所有元素必须放在方括号矩阵的所有元素必须放在方

20、括号“ ”内;内;l矩阵各元素之间必须用逗号矩阵各元素之间必须用逗号“,”或空格隔开;或空格隔开;l矩阵行与行之间用分号矩阵行与行之间用分号“;”或回车符号隔开;或回车符号隔开;l矩阵元素可以是任何不含未定义变量的矩阵元素可以是任何不含未定义变量的表达式表达式 。利用利用MATLAB函数创建矩阵函数创建矩阵 lones()函数 和 zeros()函数 lrand()函数 和 randn()函数 leye()函数 利用若干个小矩阵生成较大的矩阵利用若干个小矩阵生成较大的矩阵 向量向量是是MATLAB的重要概念之一,是指仅有一行或一列的重要概念之一,是指仅有一行或一列的矩阵,是矩阵的一种特例,前面

21、介绍的矩阵的创建及保存的矩阵,是矩阵的一种特例,前面介绍的矩阵的创建及保存办法完全适用于向量。对生成的办法完全适用于向量。对生成的行向量行向量进行转置就可以得到进行转置就可以得到列向量列向量。 在在MATLAB中有多种方法可以生成向量,除利用前面介中有多种方法可以生成向量,除利用前面介绍过的创建矩阵的方法来生产向量外,还有下面两种绍过的创建矩阵的方法来生产向量外,还有下面两种常用常用的的方法。方法。利用冒号利用冒号“:”运算生成行向量运算生成行向量 其语句格式 a=m:n a=m:p:n 利用函数利用函数linspace()生成行向量生成行向量 其语句格式 linspace(m,n) lins

22、pace(m,n,s) 在构建信号时,通常都是通过定义向量的形式产生一个自变量。l矩阵生成不但可以使用纯矩阵生成不但可以使用纯数字数字(含复数含复数),也可以),也可以使用使用变量变量(或者说采用一个(或者说采用一个表达式表达式)。)。l矩阵的元素直接排列在方括号内,行与行之间用分矩阵的元素直接排列在方括号内,行与行之间用分号隔开,每行内的元素使用空格或逗号隔开。大的号隔开,每行内的元素使用空格或逗号隔开。大的矩阵可以用分行输入,回车键代表分号。矩阵可以用分行输入,回车键代表分号。y=2,4, 53 6 8y= 2 4 5 3 6 8a=1; b=2; c=3;x=5 b c; a*b a+c

23、 c/bx= 5.000 2.000 3.000 2.000 4.000 1.5001)、在命令窗口中输入(1)用线性等间距生成向量矩阵(start:step:end)a=1:2:10a= 1 3 5 7 9其中start为起始值,step为步长,end为终止值。当步长为1时可省略step参数;另外step也可以取负数。(2)a=linspace(n1,n2,n)在线性空间上,行矢量的值从n1到n2,数据个数为n,缺省n为100。a=linspace(1,10,10)a= 1 2 3 4 5 6 7 8 9 10(4)一些常用的特殊矩阵单位矩阵:eye(m,n); eye(m)零矩阵:zero

24、s(m,n); zeros(m)一矩阵:ones(m,n); ones(m)对角矩阵:对角元素向量 V=a1,a2,an A=diag(V)随机矩阵:rand(m,n)产生一个mn的均匀分布的随机矩阵(3)a=logspace(n1,n2,n)在对数空间上,行矢量的值从10n1到10n2,数据个数为n,缺省n为50。这个指令为建立对数频域轴坐标提供了方便。a=logspace(1,3,3)a= 10 100 1000eye(2,3)ans= 1 0 0 0 1 0zeros(2,3)ans= 0 0 0 0 0 0ones(2,3)ans= 1 1 1 1 1 1V=5 7 2; A=diag

25、(V)A= 5 0 0 0 7 0 0 0 2eye(2)ans= 1 0 0 1zeros(2)ans= 0 0 0 0ones(2)ans= 1 1 1 1注注: :如果已知如果已知A A为方阵,则为方阵,则V=diag(A)V=diag(A)可以提取可以提取A A的对角元素构成向量的对角元素构成向量V V。利用外部数据文件利用外部数据文件( (* *.mat).mat)保存和装载矩阵保存和装载矩阵l 创建的矩阵或其他变量存在于创建的矩阵或其他变量存在于MATLAB环境环境中,只要不重新定义其数值就不改变,但是当中,只要不重新定义其数值就不改变,但是当退出退出MATLAB环境,重新启动环境

26、,重新启动MATLAB时其时其变量定义就不存在了。变量定义就不存在了。l在在MATLAB的运行过程中可以使用专用命令的运行过程中可以使用专用命令save和和load来对矩阵数据以来对矩阵数据以MAT文件格式将文件格式将计算环境中的矩阵数据长期保留下来,以备以计算环境中的矩阵数据长期保留下来,以备以后使用。后使用。MAT文件(即扩展名为文件(即扩展名为mat的文件)的文件)是是MATLAB保存数据的一种标准格式的二进保存数据的一种标准格式的二进制文件。制文件。save命令 :命令格式 save 路径文件名 变量名load命令: 命令格式 load 路径文件名 l在在MATLAB系统中,矩阵的元素

27、是通过其行、系统中,矩阵的元素是通过其行、列的标号来标示的,矩阵元素所处的行号和列列的标号来标示的,矩阵元素所处的行号和列号称为该元素的下标。矩阵的元素可以通过其号称为该元素的下标。矩阵的元素可以通过其下标来引用,下标来引用,A(k,l)即表示矩阵即表示矩阵A第第k行第行第l列的列的元素,元素, k和和l的取值从的取值从1开始开始 。l利用矩阵的下标不但可以得到矩阵的元素值,利用矩阵的下标不但可以得到矩阵的元素值,而且可以借助于矩阵的下标生成矩阵的子阵。而且可以借助于矩阵的下标生成矩阵的子阵。命令格式为:命令格式为:BA(x,y) ,该命令由已定义的矩该命令由已定义的矩阵阵A,根据向量,根据向

28、量x指定的行和相量指定的行和相量y指定的列生指定的列生成一新的矩阵成一新的矩阵B。其中。其中x是由是由A的行号组成的任的行号组成的任意排列的行向量,意排列的行向量,y是由是由A的列号组成的任意的列号组成的任意排列的行向量。排列的行向量。 1、矩阵下标:、矩阵下标:MATLAB通过确认矩阵下标,可以对矩阵进行通过确认矩阵下标,可以对矩阵进行插入子块,提取子块和重排子块的操作。插入子块,提取子块和重排子块的操作。A(m,n): 提取第提取第m行,第行,第n列元素列元素A(:,n): 提取第提取第n列元素列元素A(m,:): 提取第提取第m行元素行元素A(m1:m2,n1:n2):提取第:提取第m1

29、行到第行到第m2行和第行和第n1列到列到 第第n2列的所有元素(提取子块)。列的所有元素(提取子块)。A(:):得到一个长列矢量,该矢量的元素按矩阵的列进行:得到一个长列矢量,该矢量的元素按矩阵的列进行排列排列矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。置上添加这个数,而且在其他没有指定的位置补零。消除子块:如果将矩阵的子块赋值为空矩阵消除子块:如果将矩阵的子块赋值为空矩阵 ,则相当于,则相当于

30、消除了相应的矩阵子块。消除了相应的矩阵子块。2、矩阵的大小lm,n=size(A,x):返回矩阵的行列数m与n,当x=1,则只返回行数m,当x=2,则只返回列数n。llength(A)=max(size(A):返回行数或列数的最大值。lrank(A):求矩阵的秩a=1 2 3;3 4 5;m,n=size(a)m = 2n = 3length(a)ans = 3max(size(a)ans = 3rank(a)ans = 23、利用help命令可了解矩阵操作函数:help elmat MATLAB的算术运算符运算符名 称指令示例说 明加AB若A、B为同维矩阵(包含是两个标量的情况),则表示A与

31、B对应元素相加;若其中一个矩阵为标量,则表示另一个矩阵的所有元素加上该标量减AB若A、B为同维矩阵(包含是两个标量的情况),则表示A与B对应元素相减;若其中一个矩阵为标量,则表示另一个矩阵的所有元素减去该标量(或该标量减去各元素)*矩阵乘A*B矩阵A与B相乘,A和B到维数必须满足矩阵乘法的定义,A和B均可以是向量和标量.*数组乘A.*B矩阵A与B对应元素相乘,A和B必须是同维矩阵或其中之一为标量矩阵乘方ABA、B均为标量时,表示A的B次方幂;A为方阵,B为正整数时,表示矩阵A的B次乘积;A为方阵,B为负整数时,表示矩阵A逆矩阵的B次乘积;当A、B都为矩阵时,没有定义.数组乘方A.BA、B必须为

32、同维矩阵,表示矩阵A的各元素与矩阵B的对应元素的乘方运算,即A(i,j)B(i,j)矩阵左除AB方程A*X=B的解X.数组左除A.B矩阵B的元素除以矩阵A的对应元素,A、B必须为同维矩阵或其中之一为标量/矩阵右除B/A方程X*A=B的解X./数组右除A./B矩阵A的元素除以矩阵B的对应元素,A、B必须为同维矩阵或其中之一为标量共轭转置A矩阵A的共轭转置与与lMATLAB提供了几乎所有初等函数,包括三提供了几乎所有初等函数,包括三角函数、对数函数、指数函数和复数运算函数角函数、对数函数、指数函数和复数运算函数等。函数的调用格式为:等。函数的调用格式为:函数名(变量)函数名(变量) l函数的变量即

33、是函数的变量即是MATLAB的矩阵变量,但函的矩阵变量,但函数的运算却是按数组的运算规则进行的,即函数的运算却是按数组的运算规则进行的,即函数运算的结果是将函数运算分别作用于函数变数运算的结果是将函数运算分别作用于函数变量(矩阵)的量(矩阵)的每一个元素每一个元素。函函 数数说说 明明函函 数数说说 明明sin(x)正弦函数正弦函数abs(x)求实数的绝对值或复求实数的绝对值或复数的幅值(模)数的幅值(模)cos(x)余弦函数余弦函数angle(x) 四象限内求复数四象限内求复数的幅角的幅角tan(x)正切函数正切函数sqrt(x)求平方根求平方根asin(x) 反正弦函数反正弦函数real(

34、x)求复数的实部求复数的实部acos(x) 反余弦函数反余弦函数imag(x) 求复数的虚部求复数的虚部atan(x) 反正切函数反正切函数conj(x)求复数的共轭求复数的共轭可以利用帮助命令可以利用帮助命令: Help elfun 列出常用的基本数学函数列出常用的基本数学函数sinh(x)双曲正弦函数双曲正弦函数sign(x)符号函数;返回自变量符号函数;返回自变量(实数)的符号。(实数)的符号。cosh(x) 双曲余弦函数双曲余弦函数exp(x)自然指数函数自然指数函数extanh(x) 双曲正切函数双曲正切函数log(x)自然对数函数自然对数函数(以(以e为底)为底)asinh(x)

35、反双曲正弦函数反双曲正弦函数log10(x)常用对数函数常用对数函数(以(以10为底)为底)acosh(x)反双曲余弦函数反双曲余弦函数round(x)四舍五入到最接近的整四舍五入到最接近的整数数atanh(x)反双曲正切函数反双曲正切函数rem(x,y)除后余数,给出除后余数,给出x/y的余的余数数lMATLAB采用命令行式的表达式语言,每一采用命令行式的表达式语言,每一个命令行就是一条语句,其格式与书写的数学个命令行就是一条语句,其格式与书写的数学表达式十分相近,非常容易掌握。表达式十分相近,非常容易掌握。l用户在命令窗口中输入语句并按下回车键后,用户在命令窗口中输入语句并按下回车键后,该

36、语句就由该语句就由MATLAB系统解释运行,并立即系统解释运行,并立即给出结果。给出结果。MATLAB的语句采用如下两种形的语句采用如下两种形式之一:式之一: 表达式表达式 (表达式的结果赋值给(表达式的结果赋值给ans变量)变量)变量表达式变量表达式表达式由变量名、常量、函数和运算符构成,其中表达式由变量名、常量、函数和运算符构成,其中的变量名都应该是已经赋值过的变量。的变量名都应该是已经赋值过的变量。 lMATLAB强大的数值运算是其突出的特点l四则运算与幂运算 - 矩阵加 - 矩阵减 * - 矩阵乘 / - 矩阵右除 - 矩阵左除 - 矩阵幂(乘方) .* - 点乘(数组乘) ./ -

37、点右除(数组右除) . - 点左除(数组左除) . - 点幂(数组幂或乘方)l 矩阵加减和数组加减的运算效果是一致的,运算符也相同,没有区别l 参与运算的变量有两种情况:l 两个相同维数的矩阵相加减l 其中一个矩阵为标量(它们都是按照实际矩阵的加减运算规则进行的)1. 举例 A=1 2 3; 4 5 6; 7 8 9; B=ones(3); %产生一个三阶全1方阵 C1=A+B; %矩阵加 C2=1+A; % 标量和矩阵加 C3=A+1; C2-C1; %矩阵减,结果应该为全零阵 C3-C1; %矩阵减,结果应该为全零阵 1-C1+A(一一)矩阵乘矩阵乘l矩阵乘和数组乘(点乘)的运算是不同的,

38、运算矩阵乘和数组乘(点乘)的运算是不同的,运算符合也不同,一定要注意区分。符合也不同,一定要注意区分。l矩阵乘矩阵乘条件:参与矩阵乘的两个矩阵必须满足条件:参与矩阵乘的两个矩阵必须满足矩阵乘法的规矩阵乘法的规则则即:即:CmnAmkBkn注:两个矩阵的顺序不能随意交换,否则不能满足维数关系注:两个矩阵的顺序不能随意交换,否则不能满足维数关系或结果不正确。或结果不正确。参与矩阵运算的两个矩阵其中一个可以是标量:参与矩阵运算的两个矩阵其中一个可以是标量:标乘标乘l举例:举例: a=1 1 2 2;3 3 4 4; b=1 1 1;2 2 2;3 3 3;4 4 4; a*bans = 17 17

39、17 37 37 37 b*a %交换顺序后不满足矩阵乘? Error using = mtimesInner matrix dimensions must agree. A=round(10*rand(3)+1; B=round(10*rand(3)+1; A*B-B*A %交换顺序后计算结果是不同的ans = 20 61 51 -103 -33 -39 -40 17 13(二二)数组乘数组乘l数组乘数组乘也称为也称为“点乘点乘”参与数组乘的两个矩阵的参与数组乘的两个矩阵的维数维数必须是必须是相等相等的的其中一个矩阵可以是标量,和标乘的结果一致其中一个矩阵可以是标量,和标乘的结果一致点乘的顺

40、序可以交换,不影响计算结果点乘的顺序可以交换,不影响计算结果l数组乘数组乘的运算可以从向量的的运算可以从向量的内积内积过程理解过程理解l举例:举例:(1)矩阵乘和数组乘的区别(方阵)矩阵乘和数组乘的区别(方阵)(2)满足数组乘的矩阵不一定满足矩阵乘)满足数组乘的矩阵不一定满足矩阵乘 a=1 1 1;2 2 2;3 3 3; b=eye(3); c=a*bc = 1 1 1 2 2 2 3 3 3 d=a.*b %可以看出结果的区别d = 1 0 0 0 2 0 0 0 3 e=b.*a %交换顺序并不影响计算结果e = 1 0 0 0 2 0 0 0 3l分析下面程序段:x=0:0.01*pi

41、:2*pi;y1=sin(x);y2=sin(2*x);y3=x*sin(x);l程序是否能够得到希望的结果?(一一)矩阵除矩阵除l矩阵除和数组除的运算完全不一样矩阵除和数组除的运算完全不一样l矩阵除分为矩阵矩阵除分为矩阵左除左除和矩阵和矩阵右除右除矩阵右除矩阵右除l运算符运算符 “/” 例如例如“B/A”,表示矩阵,表示矩阵B右除右除Al条件:两个矩阵的列数相等,条件:两个矩阵的列数相等,或者或者除数矩阵是标量除数矩阵是标量矩阵左除矩阵左除l运算符运算符 “” 例如例如“AB”,表示矩阵,表示矩阵B左除左除Al条件:两个矩阵的行数相等,条件:两个矩阵的行数相等,或者或者除数矩阵是标量除数矩阵

42、是标量显然:矩阵除不能交换矩阵的顺序显然:矩阵除不能交换矩阵的顺序如果如果A是一个是一个非奇异方阵非奇异方阵,那么,那么A B和和B / A对对应应A的逆与的逆与B的左乘和右乘;的左乘和右乘;即分别等价于:即分别等价于: B / A =BA-1 和和A B= A -1B 。l此时此时X = A B是矩阵方程是矩阵方程A X=B的解的解l这里的这里的X具有与具有与B相同的维数;相同的维数;l同理矩阵方程同理矩阵方程X A=B的解是的解是X=B / A。 如果如果A是一个是一个非奇异方阵非奇异方阵,那么,那么A B和和B / A对对应应A的逆与的逆与B的左乘和右乘;的左乘和右乘;即分别等价于:即分

43、别等价于: B / A =BA-1 和和A B= A -1B 。l此时此时X = A B是矩阵方程是矩阵方程A X=B的解的解l这里的这里的X具有与具有与B相同的维数;相同的维数;l同理矩阵方程同理矩阵方程X A=B的解是的解是X=B / A。 虽然非奇异矩阵的除法可以通过与矩阵的逆相虽然非奇异矩阵的除法可以通过与矩阵的逆相乘实现但是从乘实现但是从运行时间运行时间和和精度精度来说都不如使用来说都不如使用矩阵除法矩阵除法B / A中中A可以为可以为标量标量,B中中各元素除以各元素除以Al示例示例(二二)数组除数组除l数组除同样可以分为左除和右除数组除同样可以分为左除和右除l运算符:运算符: 右除

44、右除 “./” 左除左除 “.”参与运算的两个矩阵必须是参与运算的两个矩阵必须是相同维数相同维数的矩阵的矩阵数组除是两个矩阵数组除是两个矩阵对应元素间对应元素间进行除法运算进行除法运算参与运算的矩阵可以是参与运算的矩阵可以是标量标量左除和右除的计算结果一样左除和右除的计算结果一样l示例示例ijijbaBA/ .ijijbaAB/ .l思考下面程序: x=-4*pi:0.01*pi:4*pi; y1=sin(x); y2=y1/x; y3=y1./x;可以画出y2和y3的波形验证分析的结论。l矩阵乘方可以看作是矩阵乘法的扩充,参与运矩阵乘方可以看作是矩阵乘法的扩充,参与运算的矩阵须是算的矩阵须是

45、方阵方阵 l运算符运算符“”,使用,使用格式格式“Ap”p为大于零的整数,表示为大于零的整数,表示p个矩阵个矩阵A相乘相乘,即,即“Ap=AAA.A”;p为小于零的整数,表示为小于零的整数,表示p个个A的的逆矩阵逆矩阵相乘,或者相乘,或者是是p个矩阵个矩阵A相乘的相乘的逆逆;p等于零,等于零,“Ap”的运算结果是与的运算结果是与A同维的同维的单位阵单位阵 l数组乘方是矩阵对应元素之间的运算数组乘方是矩阵对应元素之间的运算l运算运算符号符号:“.” 使用使用格式格式:“A.B”l其中其中A、B可以是两个同维的矩阵;也可以其中可以是两个同维的矩阵;也可以其中一个为标量。一个为标量。l设设p为标量,

46、矩阵为标量,矩阵A、B分别记作:分别记作:A aij B= bij ,则各种情况下的解释如下:,则各种情况下的解释如下:A.p= aijp A矩阵的矩阵的p次方次方:A矩阵的每个元素的矩阵的每个元素的p次方形成新的矩阵;次方形成新的矩阵;p.A= paij p的的A次方次方:A矩阵的每个元素分别作矩阵的每个元素分别作为幂指数,形成新的矩阵为幂指数,形成新的矩阵A.B= aijbij A的的B次方次方:对应位置上的元素分别组:对应位置上的元素分别组合进行幂运算,形成新的矩阵合进行幂运算,形成新的矩阵 l分析下面程序段分析下面程序段是否能够完成:是否能够完成:画出信号画出信号sinx、sin2x、

47、sinx2的波形的波形x=0:0.01*pi:2*pi;y1=sin(x);y2=sin(2*x);y3=sin(x2); plot(x,y1,x,y2,x,y3)应该为:y3=sin(x.2);l运算符运算符:“”l运算规则运算规则:若矩阵若矩阵A的元素为的元素为实数实数,则与线性代数中矩阵的转,则与线性代数中矩阵的转置相同。置相同。若若A为为复数矩阵复数矩阵,则,则A转置后的元素由转置后的元素由A对应元素对应元素的共轭复数构成。即为共轭转置;的共轭复数构成。即为共轭转置;若仅希望转置,则用如下命令:若仅希望转置,则用如下命令:“A.”。 ldet ( )函数函数det ( )函数用于求解方

48、阵函数用于求解方阵A行列式的值,其调用格行列式的值,其调用格式为:式为:d=det(A) %将方阵将方阵A的行列式的值赋值给的行列式的值赋值给d lrank ( )函数函数rank ( )函数用于求解矩阵的秩,使用格式为:函数用于求解矩阵的秩,使用格式为:r=rank(A) %将矩阵将矩阵A的秩赋值给的秩赋值给rlinv ( )函数函数inv ( )函数用于求解方阵的逆矩阵,使用格式为:函数用于求解方阵的逆矩阵,使用格式为:d=inv(A) %将矩阵将矩阵A的逆矩阵赋值给的逆矩阵赋值给d,A为方阵为方阵lsize( )函数函数size( )函数用于计算矩阵的行数和列数函数用于计算矩阵的行数和列

49、数使用格式为:使用格式为:d=size(A) l%将矩阵将矩阵A的行数和列数组成的向量赋值给的行数和列数组成的向量赋值给d m,n=size(A)l%将矩阵将矩阵A的行数赋值给的行数赋值给m和列数赋值给和列数赋值给nllength ( )函数函数length ( )函数用于计算矩阵的长度(函数和列数函数用于计算矩阵的长度(函数和列数的较大者,行向量取列数)的较大者,行向量取列数)使用格式为:使用格式为:b=length(A) %将矩阵将矩阵A的长度赋值给的长度赋值给b b=max(size(A)lprod ( )函数函数prod ( ) 函数用于实现矩阵元素的求积运算函数用于实现矩阵元素的求积

50、运算 lsum ( )函数函数sum ( )函数用于实现矩阵元素的求和运算函数用于实现矩阵元素的求和运算 lmax ( )函数函数max ( )函数用于求出矩阵元素的最大值函数用于求出矩阵元素的最大值 lfliplr ( )函数函数fliplr ( )函数用于实现矩阵矩阵的反折运算函数用于实现矩阵矩阵的反折运算用于产生对称信号(偶函数)时非常有用用于产生对称信号(偶函数)时非常有用 举例:举例:除了数值运算以外除了数值运算以外MATLAB支持关系和逻辑运算支持关系和逻辑运算 lMATLAB的基本关系运算符为:的基本关系运算符为:(大于大于) =(大于等于大于等于) =(小于等于小于等于) =(

51、不等于不等于)l关系运算的结果是关系运算的结果是“0”或或“1”关系式关系式成立成立为为“1”,否则为,否则为“0” l两个矩阵必须是同维矩阵,或其中之一为标量:两个矩阵必须是同维矩阵,或其中之一为标量:两个维数相同的矩阵对应元素进行关系运算,形成一个同两个维数相同的矩阵对应元素进行关系运算,形成一个同维矩阵(元素为维矩阵(元素为“0” 0” 或或 “ “1”1”)有一个矩阵为标量时,标量元素和矩阵每个元素进行关系有一个矩阵为标量时,标量元素和矩阵每个元素进行关系运算,得到和矩阵同维数的新矩阵(元素为运算,得到和矩阵同维数的新矩阵(元素为“0” 0” 或或 “1”1”)lMATLAB的逻辑运算

52、符为:的逻辑运算符为:&(与与) |(或或) (非非)l 逻辑值逻辑值非零元素非零元素的逻辑值为的逻辑值为“1”(真)(真)零元素零元素的逻辑值为的逻辑值为“0”(假)(假)l运算规则:与数字逻辑的规则一致运算规则:与数字逻辑的规则一致0&1=0;0&0=0; 1&1=1; 0|1=1;0=1等等等等 l参与运算的两个矩阵必须是同维矩阵:参与运算的两个矩阵必须是同维矩阵:对应元对应元素进行逻辑运算素进行逻辑运算;或者其中之一为标量:;或者其中之一为标量:标量标量和矩阵的每个元素进行逻辑运算和矩阵的每个元素进行逻辑运算。l运算结果是元素为运算结果是元素为“0”、“1”的矩阵的矩阵(1) 括号括号

53、( )。(2) 数组转置数组转置(.),共轭转置,共轭转置(),数组乘方,数组乘方(.),矩阵,矩阵乘方乘方()。(3) 一元加一元加(+),一元减,一元减(- ),逻辑非逻辑非()。 (4) 数组乘法数组乘法(.*),矩阵乘法,矩阵乘法(*),数组右除,数组右除(./),数组,数组左除左除(.),矩阵右除,矩阵右除(/),矩阵左除,矩阵左除()。 (5) 加法加法(+),减法,减法(- )。 (6) 冒号运算符冒号运算符(:)。 (7) 小于小于(),小于等于,小于等于(),大于等于,大于等于(=),等于等于(= =),不等于,不等于(=)。 (8) 逻辑与逻辑与(&)。 (9) 逻辑或逻辑

54、或(| )。 3.1多项式的表示与创建多项式的表示与创建l多项式用多项式系数构成的向量来表示,给定一多项式用多项式系数构成的向量来表示,给定一个向量也就相当于建立了一个多项式。个向量也就相当于建立了一个多项式。l表示多项式的向量中的元素是该多项式的系数并表示多项式的向量中的元素是该多项式的系数并按照多项式变量的幂次降序排列:按照多项式变量的幂次降序排列:0111)(axaxaxaxPnnnnn多项式多项式对应于向量对应于向量,011aaaaPnnl多项式用向量表示,因此多项式的加减就是多项式用向量表示,因此多项式的加减就是向向量的加减量的加减,所以非常简单。但是向量的加减要,所以非常简单。但是

55、向量的加减要求求维数相同维数相同,因此两个不同幂次的多项式进行,因此两个不同幂次的多项式进行加减时,低阶的多项式必须补零。加减时,低阶的多项式必须补零。(1)和向量加法一样做)和向量加法一样做例例 :用用MATLAB语言实现:语言实现:a=1,2,3,4;b=1,4,9,16;d=a+b 系统运行结果:系统运行结果:d=2 6 12 20201262)1694()432(232323xxxxxxxxxl当两个多项式次数不同时,要用当两个多项式次数不同时,要用0补足补足例例 c=1,-5,0,1,-5; %四次多项式四次多项式 b=1,4,9,16; %三次多项式三次多项式 e=c+0,b %将

56、三次多项式将三次多项式b前面加一个前面加一个0 %补足成四次多项式,再相加补足成四次多项式,再相加运算结果运算结果 e=1 -4 4 10 11)1694()55(2334xxxxxx111044)1694()55(2342334xxxxxxxxxxl多项式的乘除运算就没有加减运算那么简单了,多项式的乘除运算就没有加减运算那么简单了,需要通过编程来实现,需要通过编程来实现,MATLAB中有相应的中有相应的函数函数来实现来实现(1)(1)多项式的相乘多项式的相乘函数函数 conv( )conv( )格式格式 R Rconv(P1,P2)conv(P1,P2)说明说明 计算多项式计算多项式A A和

57、和B B的乘积,若的乘积,若A A的长度为的长度为m m,B B的长度为的长度为n n,则,则R R 的长度为的长度为m+n-l m+n-l (2)(2)多项式的除法多项式的除法函数函数 deconv()deconv()格式格式 div,rest=deconv(A,B)div,rest=deconv(A,B)说明说明 计算多项式计算多项式A A除以多项式除以多项式B B,得到,得到商多项式商多项式divdiv,余数多项余数多项式式restrest。如果。如果restrest的元素全部为的元素全部为0 0,则表示多项式,则表示多项式A A可以整除多可以整除多项式项式B B。l例:计算多项式例:计

58、算多项式S3+2S2+3S+4与与S3+4S2+9S+16的乘积。的乘积。 a=1 2 3 4; b=1 4 9 16; c=conv(a,b)c = 1 6 20 50 75 84 64结果为:结果为:c (S)=S6+6S5+20S4+50S3+75S2+84S+64l用除法验证结果用除法验证结果 div,rest=deconv(d,a)div = 1 4 9 16rest = 0 0 0 0 0 0 0结果结果rest为零向量,表示能够整除。结果和前面的计算一致为零向量,表示能够整除。结果和前面的计算一致 l函数函数 poly2sym( ) l格式格式 p1=poly2sym(p,x)

59、l说明说明 显示数学多项式的形式显示数学多项式的形式例如: p=1,2,3,4; p=poly2sym(p,s)p = s3+2*s2+3*s+4l多项式根的求解多项式根的求解函数函数 roots( )格式格式 r=roots(p)说明说明 返回一个向量赋值给返回一个向量赋值给r(或(或ans),该向量是),该向量是多多 项式项式p的根的根 l通过多项式的根可以构建多项式通过多项式的根可以构建多项式函数函数 poly()格式格式 ppoly(a)说明说明 若若a a为向量为向量r0 r1 r2 r3 r4,返回由向量元素,返回由向量元素为根的多项式为根的多项式,即即(S-r0)(S-r1)(S

60、-r2)(S-r3)(S-r4);若若a a为矩阵(方阵)为矩阵(方阵),则返回矩阵,则返回矩阵a的的。 r=1 2; p=poly(r); poly2sym(p,x)ans = x2-3*x+2 roots(p)ans = 2 1 poly(ans)ans = 1 -3 2l例:求方程 x4+7x3 +9x-20=0的全部根。在MATLAB命令窗口输入: p=1,7,0,9,-20; %建立多项式系数向量 x=roots(p) %求根得到的结果是: x = -7.2254 -0.4286 + 1.5405i -0.4286 - 1.5405i 1.0826 a=zeros(2); a(1,1

温馨提示

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

评论

0/150

提交评论