1、 第第1章章 MATLAB操作基础操作基础1.1 MATLAB概述概述1.2 MATLAB的运行环境与安装的运行环境与安装1.3 MATLAB集成环境集成环境1.4 MATLAB帮助系统帮助系统1.1 MATLAB概述概述 1.1.1 MATLAB的发展的发展 1984年,年,MATLAB第第1版版(DOS版版)1992年,年,MATLAB4.0版版 1994年,年,MATLAB 4.2版版 1997年,年,MATLAB 5.0版版 1999年,年,MATLAB 5.3版版 2000年,年,MATLAB 6.0版版 2001年,年,MATLAB 6.1版版 2002年,年,MATLAB 6.5
2、版版 2004年,年,MATLAB 7.0版版 1.1.2 MATLAB的主要功能的主要功能1数值计算和符号计算功能数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单位,以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。还提供了十分丰富的数值计算函数。MATLAB和著名的符号计算语言和著名的符号计算语言Maple相相结合,使得结合,使得MATLAB具有符号计算功能。具有符号计算功能。2绘图功能绘图功能MATLAB提供了两个层次的绘图操作:一提供了两个层次的绘图操作:一种是对图形句柄进行的低层绘图操作,另种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层
3、绘一种是建立在低层绘图操作之上的高层绘图操作。图操作。3编程语言编程语言MATLAB具有程序结构控制、函数调用、具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。言特征,而且简单易学、编程效率高。4MATLAB工具箱工具箱 MATLAB包含两部分内容:基本部分和包含两部分内容:基本部分和各种可选的工具箱。各种可选的工具箱。MATLAB工具箱分为两大类:功能性工具工具箱分为两大类:功能性工具箱和学科性工具箱。箱和学科性工具箱。1.1.3 初识初识MATLAB例例1-1 绘制正弦曲线和余弦曲线。绘制正弦曲线和余弦曲
4、线。x=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x);例例1-2 求方程求方程 3x4+7x3+9x2-23=0的全部根。的全部根。p=3,7,9,0,-23;%建立多项式系数向量建立多项式系数向量x=roots(p)%求根求根 例例1-3 求积分求积分quad(x.*log(1+x),0,1)例例1-4 求解线性方程组。求解线性方程组。a=2,-3,1;8,3,2;45,1,-9;b=4;2;17;x=inv(a)*b 1.2 MATLAB的运行环境与安装的运行环境与安装 1.2.1 MATLAB的运行环境的运行环境硬件环境:硬件环境:(1)CPU(2)内存
5、内存(3)硬盘硬盘(4)CD-ROM驱动器和鼠标。驱动器和鼠标。软件环境:软件环境:(1)Windows 98/NT/2000 或或Windows XP(2)其他软件根据需要选用其他软件根据需要选用 1.2.2 MATLAB的安装的安装安装安装MATLAB 6.5系统,需运行系统自带的系统,需运行系统自带的安装程序安装程序setup.exe,可以按照安装提示依,可以按照安装提示依次操作。次操作。1.3 MATLAB集成环境集成环境 1.3.1 启动与退出启动与退出MATLAB集成环境集成环境1MATLAB系统的启动系统的启动与一般的与一般的Windows程序一样,启动程序一样,启动MATLAB
6、系统有系统有3种常见方法:种常见方法:(1)使用使用Windows“开始开始”菜单。菜单。(2)运行运行MATLAB系统启动程序系统启动程序matlab.exe。(3)利用快捷方式。利用快捷方式。启动启动MATLAB后,将进入后,将进入MATLAB 6.5集集成环境。成环境。MATLAB 6.5集成环境包括集成环境包括MATLAB主窗口、命令窗口主窗口、命令窗口(Command Window)、工作空间窗口、工作空间窗口(Workspace)、命、命令历史窗口令历史窗口(Command History)、当前目录、当前目录窗口窗口(Current Directory)和启动平台窗口和启动平台窗
7、口(Launch Pad)。当当MATLAB安装完安装完毕并首次启动时,毕并首次启动时,展现在屏幕上的界展现在屏幕上的界面为面为MATLAB的默的默认界面,如右图所认界面,如右图所示。示。2MATLAB系统的退出系统的退出要退出要退出MATLAB系统,也有系统,也有3种常见方法:种常见方法:(1)在在MATLAB主窗口主窗口File菜单中选择菜单中选择Exit MATLAB命令。命令。(2)在在MATLAB命令窗口输入命令窗口输入Exit或或Quit命命令。令。(3)单击单击MATLAB主窗口的主窗口的“关闭关闭”按钮。按钮。1.3.2 主窗口主窗口MATLAB主窗口是主窗口是MATLAB的主
8、要工作界的主要工作界面。主窗口除了嵌入一些子窗口外,还主面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。要包括菜单栏和工具栏。1菜单栏菜单栏在在MATLAB 6.5主窗口的菜单栏,共包含主窗口的菜单栏,共包含File、Edit、View、Web、Window和和Help 6个菜单项。个菜单项。(1)File菜单项:菜单项:File菜单项实现有关文件的菜单项实现有关文件的操作。操作。(2)Edit菜单项:菜单项:Edit菜单项用于命令窗口菜单项用于命令窗口的编辑操作。的编辑操作。(3)View菜单项:菜单项:View菜单项用于设置菜单项用于设置MATLAB集成环境的显示方式。集成环境的
9、显示方式。(4)Web菜单项:菜单项:Web菜单项用于设置菜单项用于设置MATLAB的的Web操作。操作。(5)Window菜单项:主窗口菜单栏上的菜单项:主窗口菜单栏上的Window菜单,只包含一个子菜单菜单,只包含一个子菜单Close all,用于关闭所有打开的编辑器窗口,包括用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model和和GUI窗口。窗口。(6)Help菜单项:菜单项:Help菜单项用于提供帮助菜单项用于提供帮助信息。信息。2工具栏工具栏MATLAB 6.5主窗口的工具栏共提供了主窗口的工具栏共提供了10个个命令按钮。这些命令按钮均有对应的菜单命令按钮。这些命
10、令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方命令,但比菜单命令使用起来更快捷、方便。便。1.3.3 命令窗口命令窗口命令窗口是命令窗口是MATLAB的主要交互窗口,用的主要交互窗口,用于输入命令并显示除图形以外的所有执行于输入命令并显示除图形以外的所有执行结果。结果。MATLAB命令窗口中的命令窗口中的“”为命令提示为命令提示符,表示符,表示MATLAB正在处于准备状态。在正在处于准备状态。在命令提示符后键入命令并按下回车键后,命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并就会解释执行所输入的命令,并在命令后面给出计算结果。在命令后面给出计算结果。一般
11、来说,一个命令行输入一条命令,命一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。若前一命令后带有分号,则逗号可以省略。例如例如p=15,m=35p=15;m=35 如果一个命令行很长,一个物理行之内写如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上不下,可以在第一个物理行之后加上3个小个小黑点并按下回车键,然后接着下一个物理黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。行继续写命令的其他部分。
12、3个小黑点称为个小黑点称为续行符,即把下面的物理行看作该行的逻续行符,即把下面的物理行看作该行的逻辑继续。辑继续。在在MATLAB里,有很多的控制键和方向键里,有很多的控制键和方向键可用于命令行的编辑。可用于命令行的编辑。1.3.4 工作空间窗口工作空间窗口工作空间是工作空间是MATLAB用于存储各种变量和用于存储各种变量和结果的内存空间。在该窗口中显示工作空结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、量类型说明,可对变量进行观察、编辑、保存和删除。保存和删除。1.3.5 当前目录窗口和搜索路径
13、当前目录窗口和搜索路径1当前目录窗口当前目录窗口当前目录是指当前目录是指MATLAB运行文件时的工作运行文件时的工作目录,只有在当前目录或搜索路径下的文目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。件、函数可以被运行或调用。在当前目录窗口中可以显示或改变当前目在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供录,还可以显示当前目录下的文件并提供搜索功能。搜索功能。将用户目录设置成当前目录也可使用将用户目录设置成当前目录也可使用cd命命令。例如,将用户目录令。例如,将用户目录c:mydir设置为当前设置为当前目录,可在命令窗口输入命令:目录,可在命令窗口输入
14、命令:cd c:mydir 2MATLAB的搜索路径的搜索路径当用户在当用户在MATLAB命令窗口输入一条命令命令窗口输入一条命令后,后,MATLAB按照一定次序寻找相关的文按照一定次序寻找相关的文件。基本的搜索过程是:件。基本的搜索过程是:(1)检查该命令是不是一个变量。检查该命令是不是一个变量。(2)检查该命令是不是一个内部函数。检查该命令是不是一个内部函数。(3)检查该命令是否当前目录下的检查该命令是否当前目录下的M文件。文件。(4)检查该命令是否检查该命令是否MATLAB搜索路径中其搜索路径中其他目录下的他目录下的M文件。文件。用户可以将自己的工作目录列入用户可以将自己的工作目录列入M
15、ATLAB搜索路径,从而将用户目录纳入搜索路径,从而将用户目录纳入MATLAB系统统一管理。设置搜索路径的方法有:系统统一管理。设置搜索路径的方法有:(1)用用path命令设置搜索路径。例如,将命令设置搜索路径。例如,将用户目录用户目录c:mydir加到搜索路径下,可在命加到搜索路径下,可在命令窗口输入命令:令窗口输入命令:path(path,c:mydir)(2)用对话框设置搜索路径用对话框设置搜索路径 在在MATLAB的的File菜单中选菜单中选Set Path命令或命令或在命令窗口执行在命令窗口执行pathtool命令,将出现搜索命令,将出现搜索路径设置对话框。通过路径设置对话框。通过A
16、dd Folder或或Add with Subfolder命令按钮将指定路径添加到命令按钮将指定路径添加到搜索路径列表中。搜索路径列表中。在修改完搜索路径后,则需要保存搜索路在修改完搜索路径后,则需要保存搜索路径径。1.3.6 命令历史记录窗口命令历史记录窗口在默认设置下,历史记录窗口中会自动保在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可的再运行。如果要
17、清除这些历史记录,可以选择以选择Edit菜单中的菜单中的Clear Command History命令。命令。1.3.7 启动平台窗口和启动平台窗口和Start按钮按钮MATLAB 6.5的启动平台窗口可以帮助用户的启动平台窗口可以帮助用户方便地打开和调用方便地打开和调用MATLAB的各种程序、的各种程序、函数和帮助文件。函数和帮助文件。MATLAB 6.5主窗口左下角还有一个主窗口左下角还有一个Start按钮,单击该按钮会弹出一个菜单,选择按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行其中的命令可以执行MATLAB产品的各种产品的各种工具,并且可以查阅工具,并且可以查阅MATLAB包
18、含的各种包含的各种资源。资源。1.4 MATLAB帮助系统帮助系统1.4.1 帮助窗口帮助窗口进入帮助窗口可以通过以下进入帮助窗口可以通过以下3种方法:种方法:(1)单击单击MATLAB主窗口工具栏中的主窗口工具栏中的Help按按钮。钮。(2)在命令窗口中输入在命令窗口中输入helpwin、helpdesk或或doc。(3)选择选择Help菜单中的菜单中的“MATLAB Help”选选项。项。1.4.2 帮助命令帮助命令MATLAB帮助命令包括帮助命令包括help、lookfor以及以及模糊查询。模糊查询。1help命令命令在在MATLAB 6.5命令窗口中直接输入命令窗口中直接输入help命
19、命令将会显示当前帮助系统中所包含的所有令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同项目,即搜索路径中所有的目录名称。同样,可以通过样,可以通过help加函数名来显示该函数的加函数名来显示该函数的帮助说明。帮助说明。2lookfor命令命令help命令只搜索出那些关键字完全匹配的结命令只搜索出那些关键字完全匹配的结果,果,lookfor命令对搜索范围内的命令对搜索范围内的M文件进文件进行关键字搜索,条件比较宽松。行关键字搜索,条件比较宽松。lookfor命令只对命令只对M文件的第一行进行关键文件的第一行进行关键字搜索。若在字搜索。若在lookfor命令加上命令加上-a
20、ll选项,则选项,则可对可对M文件进行全文搜索。文件进行全文搜索。3模糊查询模糊查询MATLAB 6.0以上的版本提供了一种类似模以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按命令的前几个字母,然后按Tab键,系统就键,系统就会列出所有以这几个字母开头的命令。会列出所有以这几个字母开头的命令。1.4.3 演示系统演示系统在帮助窗口中选择演示系统在帮助窗口中选择演示系统(Demos)选项卡,选项卡,然后在其中选择相应的演示模块,或者在然后在其中选择相应的演示模块,或者在命令窗口输入命令窗口输入Demos,或者选择主窗口,
21、或者选择主窗口Help菜单中的菜单中的Demos子菜单,打开演示系子菜单,打开演示系统。统。1.4.4 远程帮助系统远程帮助系统在在MathWorks公司的主页公司的主页(http:/)上可以找到很多上可以找到很多有用的信息,国内的一些网站也有丰富的信有用的信息,国内的一些网站也有丰富的信息资源。息资源。第第2章章 MATLAB矩阵及其运算矩阵及其运算2.1 变量和数据操作变量和数据操作2.2 MATLAB矩阵矩阵2.3 MATLAB运算运算2.4 矩阵分析矩阵分析2.5 矩阵的超越函数矩阵的超越函数2.6 字符串字符串2.7 结构数据和单元数据结构数据和单元数据2.8 稀疏矩阵稀疏矩阵2.1
22、 变量和数据操作变量和数据操作2.1.1 变量与赋值变量与赋值1变量命名变量命名在在MATLAB 6.5中,变量名是以字母开头,中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最后接字母、数字或下划线的字符序列,最多多63个字符。在个字符。在MATLAB中,变量名区分中,变量名区分字母的大小写。字母的大小写。2赋值语句赋值语句(1)变量变量=表达式表达式 (2)表达式表达式其中表达式是用运算符将有关运算量连接其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。起来的式子,其结果是一个矩阵。例例2-1 计算表达式的值,并显示计算结果。计算表达式的值,并显示计算结果。在在M
23、ATLAB命令窗口输入命令:命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y)其中其中pi和和i都是都是MATLAB预先定义的变量,预先定义的变量,分别代表代表圆周率分别代表代表圆周率和虚数单位。和虚数单位。输出结果是:输出结果是:z=-0.3488+0.3286i 2.1.2 预定义变量预定义变量在在MATLAB工作空间中,还驻留几个由系统工作空间中,还驻留几个由系统本身定义的变量。例如,用本身定义的变量。例如,用pi表示圆周率表示圆周率的近似值,用的近似值,用i,j表示虚数单位。表示虚数单位。预定义变量
24、有特定的含义,在使用时,应预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。尽量避免对这些变量重新赋值。2.1.3 内存变量的管理内存变量的管理1内存变量的删除与修改内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再内存变量的属性。当选中某些变量后,再单击单击Delete按钮,就能删除这些变量。当选按钮,就能删除这些变量。当选中某些变量后,再单击中某些变量后,再单击Open按钮,将进入按钮,将进入变量编辑器。通过变量编辑器可以直接观变量
25、编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的察变量中的具体元素,也可修改变量中的具体元素。具体元素。clear命令用于删除命令用于删除MATLAB工作空间中的变工作空间中的变量。量。who和和whos这两个命令用于显示在这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清工作空间中已经驻留的变量名清单。单。who命令只显示出驻留变量的名称,命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。大小、所占字节数及数据类型等信息。2内存变量文件内存变量文件利用利用MAT文件可以把当前文件
26、可以把当前MATLAB工作空工作空间中的一些有用变量长久地保留下来,扩间中的一些有用变量长久地保留下来,扩展名是展名是.mat。MAT文件的生成和装入由文件的生成和装入由save和和load命令来完成。常用格式为:命令来完成。常用格式为:save 文件名文件名 变量名表变量名表 -append-asciiload 文件名文件名 变量名表变量名表 -ascii其中,文件名可以带路径,但不需带扩展其中,文件名可以带路径,但不需带扩展名名.mat,命令隐含一定对,命令隐含一定对.mat文件进行操作。文件进行操作。变量名表中的变量个数不限,只要内存或变量名表中的变量个数不限,只要内存或文件中存在即可,
27、变量名之间以空格分隔。文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。当变量名表省略时,保存或装入全部变量。-ascii选项使文件以选项使文件以ASCII格式处理,省略格式处理,省略该选项时文件将以二进制格式处理。该选项时文件将以二进制格式处理。save命命令中的令中的-append选项控制将变量追加到选项控制将变量追加到MAT文件中。文件中。2.1.4 MATLAB常用数学函数常用数学函数MATLAB提供了许多数学函数,函数的自提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结逐
28、项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。果是一个与自变量同维数的矩阵。函数使用说明:函数使用说明:(1)三角函数以弧度为单位计算。三角函数以弧度为单位计算。(2)abs函数可以求实数的绝对值、复数的模、函数可以求实数的绝对值、复数的模、字符串的字符串的ASCII码值。码值。(3)用于取整的函数有用于取整的函数有fix、floor、ceil、round,要注意它们的区别。,要注意它们的区别。(4)rem与与mod函数的区别。函数的区别。rem(x,y)和和mod(x,y)要求要求x,y必须为相同大小的实矩阵必须为相同大小的实矩阵或为标量。或为标量。2.1.5 数据的输出格
29、式数据的输出格式 MATLAB用十进制数表示一个常数,具用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表体可采用日常记数法和科学记数法两种表示方法。示方法。在一般情况下,在一般情况下,MATLAB内部每一个数内部每一个数据元素都是用双精度数来表示和存储的。据元素都是用双精度数来表示和存储的。数据输出时用户可以用数据输出时用户可以用format命令设置或命令设置或改变数据输出格式。改变数据输出格式。format命令的格式为:命令的格式为:format 格式符格式符其中格式符决定数据的输出格式其中格式符决定数据的输出格式2.2 MATLAB矩阵矩阵2.2.1 矩阵的建立矩阵的建立1直
30、接输入法直接输入法 最简单的建立矩阵的方法是从键盘直接最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分或逗号分隔,不同行的元素之间用分号分隔。隔。2利用利用M文件建立矩阵文件建立矩阵 对于比较大且比较复杂的矩阵,可以为对于比较大且比较复杂的矩阵,可以为它专门建立一个它专门建立一个M文件。下面通过一个简文件。下面通过一个简单例子来说明如何利用单例子来说明如何利用
31、M文件创建矩阵。文件创建矩阵。例例2-2 利用利用M文件建立文件建立MYMAT矩阵。矩阵。(1)启动有关编辑程序或启动有关编辑程序或MATLAB文本编辑文本编辑器,并输入待建矩阵:器,并输入待建矩阵:(2)把输入的内容以纯文本方式存盘把输入的内容以纯文本方式存盘(设文设文件名为件名为mymatrix.m)。(3)在在MATLAB命令窗口中输入命令窗口中输入mymatrix,即运行该即运行该M文件,就会自动建立一个名为文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。的矩阵,可供以后使用。3利用冒号表达式建立一个向量利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:冒
32、号表达式可以产生一个行向量,一般格式是:e1:e2:e3其中其中e1为初始值,为初始值,e2为步长,为步长,e3为终止值。为终止值。在在MATLAB中,还可以用中,还可以用linspace函数产生行向函数产生行向量。其调用格式为:量。其调用格式为:linspace(a,b,n)其中其中a和和b是生成向量的第一个和最后一个元素,是生成向量的第一个和最后一个元素,n是元素总数。是元素总数。显然,显然,linspace(a,b,n)与与a:(b-a)/(n-1):b等价。等价。4建立大矩阵建立大矩阵大矩阵可由方括号中的小矩阵或向量建立起来。大矩阵可由方括号中的小矩阵或向量建立起来。2.2.2 矩阵的
33、拆分矩阵的拆分1矩阵元素矩阵元素 通过下标引用矩阵的元素,例如通过下标引用矩阵的元素,例如A(3,2)=200采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在是相应元素在内存中的排列顺序。在MATLAB中,矩阵中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如元素按列存储,先第一列,再第二列,依次类推。例如A=1,2,3;4,5,6;A(3)ans=2显然,序号显然,序号(Index)与下标与下标(Subscript)是一一对应的,以是一一对应的,以mn矩阵矩阵A为例,矩阵元素为例,矩阵元素A(i,j)的
34、序号为的序号为(j-1)*m+i。其。其相互转换关系也可利用相互转换关系也可利用sub2ind和和ind2sub函数求得。函数求得。2矩阵拆分矩阵拆分 (1)利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵 A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素;A(i,:)表示表示A矩矩阵第阵第i行的全部元素;行的全部元素;A(i,j)表示取表示取A矩阵第矩阵第i行、第行、第j列的元列的元素。素。A(i:i+m,:)表示取表示取A矩阵第矩阵第ii+m行的全部元素;行的全部元素;A(:,k:k+m)表示取表示取A矩阵第矩阵第kk+m列的全部元素,列的全部元素,A(i:i+m,k:k
35、+m)表示取表示取A矩阵第矩阵第ii+m行内,并在第行内,并在第kk+m列中的所有元素。列中的所有元素。此外,还可利用一般向量和此外,还可利用一般向量和end运算符来表示矩阵下标,运算符来表示矩阵下标,从而获得子矩阵。从而获得子矩阵。end表示某一维的末尾元素下标。表示某一维的末尾元素下标。(2)利用空矩阵删除矩阵的元素利用空矩阵删除矩阵的元素 在在MATLAB中,定义中,定义为空矩阵。给变为空矩阵。给变量量X赋空矩阵的语句为赋空矩阵的语句为X=。注意,。注意,X=与与clear X不同,不同,clear是将是将X从工作空间中删除,从工作空间中删除,而空矩阵则存在于工作空间中,只是维数而空矩阵
36、则存在于工作空间中,只是维数为为0。2.2.3 特殊矩阵特殊矩阵1通用的特殊矩阵通用的特殊矩阵常用的产生通用特殊矩阵的函数有:常用的产生通用特殊矩阵的函数有:zeros:产生全:产生全0矩阵矩阵(零矩阵零矩阵)。ones:产生全:产生全1矩阵矩阵(幺矩阵幺矩阵)。eye:产生单位矩阵。:产生单位矩阵。rand:产生:产生01间均匀分布的随机矩阵。间均匀分布的随机矩阵。randn:产生均值为:产生均值为0,方差为,方差为1的标准正态的标准正态分布随机矩阵。分布随机矩阵。例例2-3 分别建立分别建立33、32和与矩阵和与矩阵A同样大小的同样大小的零矩阵。零矩阵。(1)建立一个建立一个33零矩阵。零
37、矩阵。zeros(3)(2)建立一个建立一个32零矩阵。零矩阵。zeros(3,2)(3)设设A为为23矩阵,则可以用矩阵,则可以用zeros(size(A)建立建立一个与矩阵一个与矩阵A同样大小零矩阵。同样大小零矩阵。A=1 2 3;4 5 6;%产生一个产生一个23阶矩阵阶矩阵Azeros(size(A)%产生一个与矩阵产生一个与矩阵A同样大小的同样大小的零矩阵零矩阵例例2-4 建立随机矩阵:建立随机矩阵:(1)在区间在区间20,50内均匀分布的内均匀分布的5阶随机矩阵。阶随机矩阵。(2)均值为均值为0.6、方差为、方差为0.1的的5阶正态分布随机矩阵。阶正态分布随机矩阵。命令如下:命令如
38、下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函数还有此外,常用的函数还有reshape(A,m,n),它在矩,它在矩阵总元素保持不变的前提下,将矩阵阵总元素保持不变的前提下,将矩阵A重新排成重新排成mn的二维矩阵。的二维矩阵。2用于专门学科的特殊矩阵用于专门学科的特殊矩阵(1)魔方矩阵魔方矩阵魔方矩阵有一个有趣的性质,其每行、每魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由阶魔方阵,其元素由1,2,3,n2共共n2个整数个整数组成。组成。MATLAB提供
39、了求魔方矩阵的函数提供了求魔方矩阵的函数magic(n),其功能是生成一个,其功能是生成一个n阶魔方阵。阶魔方阵。例例2-5 将将101125等等25个数填入一个个数填入一个5行行5列的列的表格中,使其每行每列及对角线的和均为表格中,使其每行每列及对角线的和均为565。M=100+magic(5)(2)范得蒙矩阵范得蒙矩阵范得蒙范得蒙(Vandermonde)矩阵最后一列全为矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在一个指定向量生成一个范得
40、蒙矩阵。在MATLAB中,函数中,函数vander(V)生成以向量生成以向量V为基础向量的范得蒙矩阵。例如,为基础向量的范得蒙矩阵。例如,A=vander(1;2;3;5)即可得到上述范得蒙矩即可得到上述范得蒙矩阵。阵。(3)希尔伯特矩阵希尔伯特矩阵在在MATLAB中,生成希尔伯特矩阵的函数中,生成希尔伯特矩阵的函数是是hilb(n)。使用一般方法求逆会因为原始数据的微小使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。扰动而产生不可靠的计算结果。MATLAB中,有一个专门求希尔伯特矩阵的逆的函中,有一个专门求希尔伯特矩阵的逆的函数数invhilb(n),其功能是求,其功能是求n
41、阶的希尔伯特矩阶的希尔伯特矩阵的逆矩阵。阵的逆矩阵。例例2-6 求求4阶希尔伯特矩阵及其逆矩阵。阶希尔伯特矩阵及其逆矩阵。命令如下:命令如下:format rat%以有理形式输出以有理形式输出H=hilb(4)H=invhilb(4)(4)托普利兹矩阵托普利兹矩阵托普利兹托普利兹(Toeplitz)矩阵除第一行第一列外,矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。生其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是成托普利兹矩阵的函数是toeplitz(x,y),它,它生成一个以生成一个以x为第一列,为第一列,y为第一行的托普为第一行的托普利兹矩阵。这里利兹矩阵。这里x,y
42、均为向量,两者不必等均为向量,两者不必等长。长。toeplitz(x)用向量用向量x生成一个对称的托普生成一个对称的托普利兹矩阵。例如利兹矩阵。例如T=toeplitz(1:6)(5)伴随矩阵伴随矩阵MATLAB生成伴随矩阵的函数是生成伴随矩阵的函数是compan(p),其中,其中p是一个多项式的系数向是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的例如,为了求多项式的x3-7x+6的伴随矩阵,的伴随矩阵,可使用命令:可使用命令:p=1,0,-7,6;compan(p)(6)帕斯卡矩阵帕斯卡矩阵我们知道,二次项我们知道,二次项(x
43、+y)n展开后的系数随展开后的系数随n的增大组成一个三角形表,称为杨辉三角的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯形。由杨辉三角形表组成的矩阵称为帕斯卡卡(Pascal)矩阵。函数矩阵。函数pascal(n)生成一个生成一个n阶阶帕斯卡矩阵。帕斯卡矩阵。例例2-7 求求(x+y)5的展开式。的展开式。在在MATLAB命令窗口,输入命令:命令窗口,输入命令:pascal(6)矩阵次对角线上的元素矩阵次对角线上的元素1,5,10,10,5,1即为展即为展开式的系数。开式的系数。2.3 MATLAB运算运算 2.3.1算术运算算术运算1基本算术运算基本算术运算 MAT
44、LAB的基本算术运算有:的基本算术运算有:(加加)、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)。注意,运算是在矩阵意义下进行的,单个注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。数据的算术运算只是一种特例。(1)矩阵加减运算矩阵加减运算 假定有两个矩阵假定有两个矩阵A和和B,则可以由,则可以由A+B和和A-B实现矩阵的加减运算。运算规则是:若实现矩阵的加减运算。运算规则是:若A和和B矩阵的维数相同,则可以执行矩阵的矩阵的维数相同,则可以执行矩阵的加减运算,加减运算,A和和B矩阵的相应元素相加减。矩阵的相应元素相加减。如果如果A与与B的维数不相同,则的维数
45、不相同,则MATLAB将给将给出错误信息,提示用户两个矩阵的维数不出错误信息,提示用户两个矩阵的维数不匹配。匹配。(2)矩阵乘法矩阵乘法 假定有两个矩阵假定有两个矩阵A和和B,若,若A为为mn矩阵,矩阵,B为为np矩阵,则矩阵,则C=A*B为为mp矩阵。矩阵。(3)矩阵除法矩阵除法在在MATLAB中,有两种矩阵除法运算:中,有两种矩阵除法运算:和和/,分,分别表示左除和右除。如果别表示左除和右除。如果A矩阵是非奇异方阵,矩阵是非奇异方阵,则则AB和和B/A运算可以实现。运算可以实现。AB等效于等效于A的逆左的逆左乘乘B矩阵,也就是矩阵,也就是inv(A)*B,而,而B/A等效于等效于A矩阵矩阵
46、的逆右乘的逆右乘B矩阵,也就是矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运算的结果相同,对于含有标量的运算,两种除法运算的结果相同,如如3/4和和43有相同的值,都等于有相同的值,都等于0.75。又如,设。又如,设a=10.5,25,则,则a/5=5a=2.1000 5.0000。对于矩。对于矩阵来说,左除和右除表示两种不同的除数矩阵和阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般被除数矩阵的关系。对于矩阵运算,一般ABB/A。(4)矩阵的乘方矩阵的乘方 一个矩阵的乘方运算可以表示成一个矩阵的乘方运算可以表示成Ax,要,要求求A为方阵,为方阵,x
47、为标量。为标量。2点运算点运算 在在MATLAB中,有一种特殊的运算,因中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有所以叫点运算。点运算符有.*、./、.和和.。两矩阵进行点运算是指它们的对应元素进两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。行相关运算,要求两矩阵的维参数相同。2.3.2 关系运算关系运算 MATLAB提供了提供了6种关系运算符:种关系运算符:(小小于于)、(大于大于)、=(大于或大于或等于等于)、=(等于等于)、=(不等于不等于)。它们的含。它们的含义不难理解,但要注意
48、其书写方法与数学义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。中的不等式符号不尽相同。关系运算符的运算法则为:关系运算符的运算法则为:(1)当两个比较量是标量时,直接比较两当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果数的大小。若关系成立,关系表达式结果为为1,否则为,否则为0。(2)当参与比较的量是两个维数相同的矩当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个比较结果。最终的关系运算的结果是一
49、个维数与原矩阵相同的矩阵,它的元素由维数与原矩阵相同的矩阵,它的元素由0或或1组成。组成。(3)当参与比较的一个是标量,而另一个是当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由维数与原矩阵相同的矩阵,它的元素由0或或1组成。组成。例例2-8 产生产生5阶随机方阵阶随机方阵A,其元素为,其元素为10,90区间区间的随机整数,然后判断的随机整数,然后判断A的元素是
50、否能被的元素是否能被3整除。整除。(1)生成生成5阶随机方阵阶随机方阵A。A=fix(90-10+1)*rand(5)+10)(2)判断判断A的元素是否可以被的元素是否可以被3整除。整除。P=rem(A,3)=0其中,其中,rem(A,3)是矩阵是矩阵A的每个元素除以的每个元素除以3的余数的余数矩阵。此时,矩阵。此时,0被扩展为与被扩展为与A同维数的零矩阵,同维数的零矩阵,P是进行等于是进行等于(=)比较的结果矩阵。比较的结果矩阵。2.3.3 逻辑运算逻辑运算 MATLAB提供了提供了3种逻辑运算符:种逻辑运算符:&(与与)、|(或或)和和(非非)。逻辑运算的运算法则为:逻辑运算的运算法则为: