当前位置:文档之家› 计算机仿真实验指导书(第一、二次上机)20151130

计算机仿真实验指导书(第一、二次上机)20151130

计算机仿真实验指导书

目录

第一章MATLAB及其工作环境介绍 (1)

1.1 MATLAB简介 (1)

1.2 MATLAB的工作环境介绍 (1)

1.3 MATLAB的基本管理命令 (4)

第二章MATLAB的数值计算功能 (6)

2.1 变量与赋值语句 (6)

2.2 MATLAB矩阵 (6)

2.3 MATLAB表达式 (11)

2.4 MATLAB常用数学函数 (12)

2.5 矩阵的基本运算 (13)

2.6 矩阵的.点操作运算 (17)

2.7 多项式及其运算 (18)

第三章MATLAB程序设计入门 (20)

3.1 M文件 (20)

3.2 数据的输入输出 (22)

3.3 全局变量和局部变量 (24)

3.4 程序流程控制 (24)

第四章MATLAB的符号运算功能 (29)

4.1 建立符号对象 (29)

4.2 符号算术运算 (30)

4.3 符号微积分运算 (33)

4.4 符号函数的可视化 (35)

第五章MATLAB的可视化功能 (38)

5.1 二维图形 (38)

5.2绘制三维图形 (43)

5.3 特殊坐标图形 (45)

5.4 图形句柄 (46)

第六章控制系统的频域与时域分析 (52)

6.1线性系统的描述 (52)

6.2 模型之间的转换 (56)

6.3 时域响应分析 (59)

6.4 频域响应分析 (66)

6.5 根轨迹分析 (70)

第一章MATLAB及其工作环境介绍

1.1 MATLAB简介

MATLAB是matrix和laboratory前三个字母的缩写,意思是实验室矩阵。MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,经过十多年的发展与完善,MATLAB已发展成为由MATLAB语言、MATLAB工作环境、MA TLAB图象处理系统、MATLAB 数学函数库和MATLAB应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的体系。MA TLAB由“主包”和三十多个扩展功能和应用学科性的工具箱组成。

MATLAB具有以下基本功能:

●数值计算功能

●符号计算功能

●图形处理及可视化功能

●可视化建模及动态仿真功能

MATLAB语言是以矩阵计算为基础的程序设计语言,语法规则简单易学。其指令格式与数学表达式非常相近,用MA TLAB编写程序犹如在便笺上列写公式和求解,因而被称为“便笺式”的编程语言。另外,MATLAB还具有功能丰富和完备的数学函数库及工具箱,大量繁杂的数学运算和分析可通过调用MA TLAB函数直接求解,大大提高效率,其程序设计周期远远超过了传统的C和FORTRAN语言,因而用MATLAB编写程序,往往可以达到事半功倍的效果。在图形处理方面,MATLAB可以给数据以二维、三维乃至四维的直观表现,并在图形色彩、视角、品性等方面具有较强的渲染和控制能力,使技术人员对大量原始数据的分析变得轻松和得心应手。

MATLAB的上述特点,使它深受工程技术人员及科技专家的欢迎,并成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。目前MATLAB 已成为国际上公认的最优秀的科技应用软件。在本实验是以Matlab2010Rb作为平台展开上机操作介绍。

1.2 MATLAB的工作环境介绍

一、MATLAB的工作环境

MATLAB 2010的工作桌面由标题栏、菜单栏、工具栏、命令窗口、图形窗口、工作区窗口、当前目录窗口、历史命令窗口及状态栏组成,如图1-1所示。

图1.1 MA TLAB工作界面

MATLAB的工作环境主要由命令窗(Command Window)、若干个图形窗(Figure window)、文本编辑器(File Editor)和文件管理器组成。各视窗之间的切换可用快捷键Alt+Tab。

(1)命令窗口

命令窗是人们与MA TLAB作人机对话的主要环境,通过它可以键入MATLAB 的各种命令并读出相应的结果。但要注意,每一条命令或命令行键入后都要按回车键,命令才会被执行。例如,键入

a= ones(3,3)

然后按回车键,即可创建一个3*3且元素值为1的矩阵,并显示如下运行结果:a=

1 1 1

1 1 1

1 1 1

(2)图形窗口

通常,只要执行了任意一种绘图命令,图形窗就会自动产生。绘图都在这一图形窗中进行。如果想再建一个图形窗,则可键入figure,MA TLAB会新建一个图形窗,并自动给它排出序号。

(3)文本编辑器

MATLAB程序编辑有行命令方式和文件方式两种,行命令方式是在命令窗中一行一行地输入程序,计算机每次对一行命令作出反应,像计算器那样,只能编简单

的程序,在入门时通常用这种方式。文件方式适用于稍复杂一些的程序(点击工具

栏的左侧第一个按钮,弹出M编辑窗口),此时把程序写成一个有多行语句组成的文件,让MATLAB来执行这个文件中的全部语句。编写和修改这种文件程序就要用到文件编辑器。

(4)工作区窗口

变量管理中心,显示出所有变量的信息。在某一变量上单击鼠标右键,会弹出菜单,可对变量进行处理。

(5)命令历史窗口

显示已执行过的命令,在某一命令行上单击鼠标右键,会弹出菜单,可对所选命令进行操作。

(6)当前路径窗口

提供当前路径文件的操作。在窗口的某一文件上单击鼠标右键,会弹出菜单,对所选文件进行操作。

二、获取帮助信息

MATLAB为用户提供了强大的在线帮助功能。获取帮助信息有如下两种方式:1.用帮助菜单获取帮助信息

●单击MATLAB命令窗口菜单栏的(Help)菜单项,选择(Help Window)选项,则打开MA TLAB帮助主题窗口。该窗口列出了MATLAB的所有帮助主题,双击相关主题即可打开有关该主题的进一步详细说明。

●单击MA TLAB命令窗口菜单栏的(Help)菜单栏目,弹出帮助菜单选项,选择(Help Desk)选项,则打开MA TLAB帮助工作台。Helpdesk以超文本方式为用户提供帮助信息,从基本的入门帮助到工具箱的使用。用户只需单击工作台中的相关主题,即可获得该主题的超文本格式的详细帮助信息。

2.通过命令窗口获取帮助信息

通过在命令窗口直接键入帮助命令也可获取MATLAB的在线帮助信息。帮助命令如下:

help 列出MA TLAB的所有帮助主题

helpwin 打开MA TLAB的帮助主题窗口

helpdesk 打开MA TLAB的帮助工作台

help help 打开有关如何使用帮助信息的帮助窗口

help+函数名(或主题名)查询函数(或主题)的相关信息

三、使用演示功能(Demo)

MATLAB的演示功能可以帮助用户学习和理解MATLAB的应用和强大功能,

启动MATLAB的演示程序可通过如下两种方法:

(1)选择(Help)菜单的(Examples and Demos)选项,即可打开MATLAB演示窗口。

(2)在MA TLAB的命令窗口中键入命令Demo,也可打开演示程序窗口。四、MATLAB的退出

退出MATLAB,只需在MATLAB命令窗口内键入命令exit或quit,或单击命令窗口的关闭按钮即可。

1.3 MATLAB的基本管理命令

一、工作区(workspace)的概念及操作

当MATLAB启动后,系统自动在内存中开辟一块区域用于存储用户在MA TLAB 命令窗口中定义的变量、运算结果和有关数据。此内存空间称为MATLAB的工作空间(workspace)。工作区空间在MATLAB刚启动时为空,此后,用户所定义的变量、运算结果和有关数据均存储在该空间。但用户退出MATLAB后,工作空间的内容将不再保留。

为了能将工作空间的内容长期保留下来,MA TLAB为用户提供了将工作空间以MAT文件格式保存到磁盘的功能,具体操作如下:

(1)保存工作空间。单击MATLAB命令窗口菜单栏的文件(file)菜单,选择(Save Workspace as)菜单选项,系统打开工作空间保存设置对话框,在该对话框中用户可对工作空间保存的路径和文件名进行设置。

(2)装载工作空间。在使用MA TLAB的过程中,如果需要用到上一次已保存的工作空间的变量和数据,可以使用以下操作将已保存的工作空间的变量和数据装载到当前工作空间中。

单击MATLAB命令窗口菜单栏的文件(File)菜单,选择(Load Workspace)菜单选项,系统打开工作空间装载设置对话框。在该对话框中选定已保存的工作空间的文件名,单击(打开)按钮,即可将已保存的工作空间的内容装载到当前工作空间。

二、清除变量命令clear

clear命令用于清除当前工作空间中的指定或全部变量。其命令格式为:

clear %清除当前工作空间中的全部变量

clear a b c %清除当前工作空间中的指定变量a、b和c

三、MATLAB工作窗口操作命令

clc 擦除工作窗口中所显示的所有内容

clf 擦除当前图形窗口中的图形

exit 关闭并退出MATLAB

pack 整理内存碎片以扩大内存空间

cd 改变当前工作目录

dir 列出当前目录及该目录下的文件及子目录清单

第二章 MATLAB 的数值计算功能

2.1 变量与赋值语句

1. 变量

变量代表一个或若干个内存单元,为了对变量所对应的存储单元进行访问,需要给变量命名。在MATLAB 中,变量名是以字母开头,后接字母、数字或下划线,字符长度应不大于31个,且区分字母的大小写。

MATLAB 的变量分为字符变量和数值变量两种。字符变量必须用单引号括起来。例:

a=’happy new year’ %表示将字符串’happy new year’赋值给字符变量a b=365 %表示将数值365赋值给数值变量b

2. 赋值语句

MATLAB 赋值语句有两种形式

(1)变量=表达式

(2)表达式

在第一种语句形式下,MA TLAB 将右边表达式的值赋给左边的变量;在第二种语句形式下,将表达式的值赋给MA TLAB 的永久变量ans 。表达式可以由分号、逗号或回车结束,如果用分号结束,则左边的变量结果将不在屏幕上显示出来,否则将把结果全部显示出来。MATLAB 程序(称为M 文件)中的语句常以分号结束。

在一条语句中,如果表达式太复杂,一行写不下,可以接上三个小黑点(续行符)并按下回车键,然后接下去再写。

可以在语句后加上注释。注释以%开头,用于解释或说明,对计算结果不产生任何影响。

例2.1 计算表达式i 35185sin 2++o

的值,并将结果赋给变量a ,然后显示出结果。

解:在MA TLAB 命令窗口输入命令:

a=2*sin(85*pi/180)/(1+sqrt(5)+3*i)

其中pi 和i 都是MA TLAB 定义的变量,分别代表π和虚数单位。 该命令的输出结果是:

a=0.3311-0.3070i

2.2 MATLAB 矩阵

矩阵是MA TLAB 最基本的数据对象,MATLAB 的大部分运算或命令都是在矩

阵运算的意义下执行的。在MATLAB中,不需要对矩阵的维数和类型进行说明,MATLAB会根据用户输入的内容自动进行配置。

2.1.1矩阵的建立

1.直接输入法

对于较小的简单矩阵,从键盘上直接输入矩阵是最常用、最方便的数值矩阵创建方法。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

例2.2 生成一个3*3的矩阵只需输入

A=[1,2,3;4,5,6;7,8,9]

A=

1 2 3

4 5 6

7 8 9

也可以用回车键代替分号,按下列方式输入:

A=[1 2 3

4 5 6

7 8 9]

其结果同上。

MATLAB的每一个元素都可以是复数,实数是复数的特例,复数的虚数部分用i或j表示。这是在MA TLAB启动时就自动设定的。例如,键入

c=3+5.2i

得c=3.0000+5.2000i

对复数矩阵有两种赋值方法:

(1)可将矩阵元素逐个赋予复数,例如,键入

z=[1+2i, 3+4i; 5+6i, 7+8i]

得z=

1.0000+

2.0000i

3.0000+

4.0000i

5.0000+

6.0000i

7.0000+

8.0000i

(2) 将矩阵的实部和虚部分别赋值,如

z=[1, 3; 5, 7]+[2, 4; 6, 8]*i

两种方法可得出同样结果。注意只有数字和i的乘积式中可省略乘号,在方法(2)中若省略“*”,就会出错。另外,如果在前面其它程序中曾经给i或j赋过值,则i,j 已经不是虚数符号,这些虚数赋值语句都不对。此时应键入

clear i,j

即把曾赋值过的i,j清掉,恢复为虚数标识符,然后再执行复数赋值语句。

2.利用MATLAB函数创建矩阵

MATLAB为用户提供了创建矩阵的函数,他们是:

●ones()函数

●zeros()函数

●rand()函数

●randn()函数

●eye()函数

ones()函数用于产生全为1的矩阵,ones(n)产生(n*n)维的全1阵,ones(n,m)产生n行m列的全1阵。

zeros()函数用于产生全0的矩阵。

rand()函数用于产生[0,1]区间均匀分布的随机阵。

randn()函数用于产生正态分布的矩阵。

eye()函数用于产生单位阵,eye(n)产生(n*n)维的单位阵。

●利用函数reshape建立数值矩阵

例,在MA TLAB命令窗口输入如下命令:

xv=1:12 %产生有12个元素的行向量xv

ym=reshape(xv, 3, 4) %利用向量xv建立3*4矩阵ym

输出结果为

xv= 1 2 3 4 5 6 7 8 9 10 11 12

ym=

1 4 7 10

2 5 8 11

3 6 9 12

3.利用外部数据文件(*.mat)保存和装载矩阵

在MA TLAB的运行过程中,有时需要将矩阵数据长期保留下来,可以使用MAT 文件对矩阵数据进行保存,在需要时将其装载到MATLAB环境中。

MAT文件是MATLAB保存数据的一种标准格式的二进制文件。MAT文件的生成和调用由专用命令save和load来进行。用户可以将已定义过的矩阵(变量)以MAT文件的格式存入到磁盘上,命令格式为:

save 路径\文件名变量

save命令可同时将多个矩阵(变量)保存到一个MAT文件中,此时变量名之间需用空格分开。

例如,用户输入命令:

save c:\my a b

则表示将变量a、b以文件名my.mat保存到C盘根目录下。若路径默认,则MATLAB自动将变量保存到其默认的目录(work)中。

以MA T文件保存的矩阵,用户在使用MA TLAB的任何时候均可用load命令装载到MATLAB的工作空间中。例如,要将上述保存的变量a、b重新装载到MA TLAB 的工作空间,只需键入命令:

load c:\my

2.2.2 矩阵元素

MATLAB允许用户对一个矩阵的单个元素进行赋值和操作。例如,如果想将矩阵A的第2行第3列的元素赋为200,则可通过下面语句完成:

A(2, 3)=200

这时将只改变该元素的值,而不影响其它元素的值。如果给出的行数和列数大于原来矩阵的范围,则MATLAB将自动扩展原来的矩阵,并将扩展后未赋值的矩阵元素置为0。

例如:A=[1, 2, 3; 4, 5, 6];

A(3, 4)=10

则输出为:

1 2 3 0

4 5 6 0

0 0 0 10

2.2.3 向量的生成

在MA TLAB系统中,仅有一行或一列的矩阵称为向量,向量是矩阵的一种特例,在MA TLAB中除利用前面已介绍过的创建矩阵的方法来生成向量外,还有以下几种方法:

1.利用冒号“:”运算生成向量

●a=m:n

●a=m:p:n

第一种格式用于生成步长值为1的均匀等分向量,其中m、n为标量(数量),分别代表向量的起始值和终止值,且n>m。例如,输入语句:

a=1:10

运行结果为:

a=

1 2 3 4 5 6 7 8 9 10

第二种格式用于生成步长值为p的均匀等分的行向量。

利用函数linspace()生产向量

●linspace(m, n)

●linspace(m, n, s)

第一种格式生成从起始值m开始到终止值n之间的线性等分的100个元素的行向量。

第二种格式生成s个线性等分点的行向量。例如:linspace(0, 10, 5)

ans=

0 2.5000 5.0000 7.5000 10.0000

2.2.4 矩阵拆分

1.利用冒号表达式获得子矩阵

(1) (:,j)表示取A矩阵的第j列全部元素;A(i,:)表示取A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。

(2) (i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素;A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m 列中的所有元素。例如:

A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];

A(2:3,4:5)

ans=

910

1415

2.利用空矩阵删除矩阵的元素

在MA TLAB中,定义[ ]为空矩阵。向量X赋空矩阵的语句为X=[ ],X=[ ]与clear X不同,clear是将X清除出工作空间,而空矩阵则存在于工作空间,只是维数为0。

将某些行与列从矩阵中移去,采用将其置为空矩阵的方法就是一种有效的方法。

例如:

A=[1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18];

A(:,[2 4])=[ ]

其中第二条命令将删除A的第二列和第四列元素。其输出为:

A=

1 3 5 6

7 9 11 12

13 15 17 18

2.2.5 who、whos和永久变量

1.who和whos

who和whos这两个命令的作用都是列出在MA TLAB工作空间中已经驻留的变量名清单。但whos在给出驻留变量名的同时,还给出它们的维数和性质。

2.永久变量

在MA TLAB工作空间中,还驻留几个由系统本身定义的变量。由于它们不能被clear清除,故称为永久变量。除前面介绍过的ans外,其余常用的永久变量有:eps MA TLAB计算浮点数的误差限

pi 圆周率л的近似值3.14159265358979

inf或Inf 无穷大,如一个数除以0的结果

NaN 非数,例如0/0、inf/inf产生的结果

i或j 虚数单位

realmax MATLAB所能表示的最大浮点数

realmin MATLAB所能表示的最小浮点数

2.3 MATLAB表达式

2.3.1算术表达式

MA TLAB的算术运算符有:

+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)

对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于除数是标量的运算,两种除法运算的结果相同,如3/4=4\3=0.7500; 又如,a=[10.5,2.5],则a/5=5\a=[2.1000,0.5000]。

2.3.2 关系表达式

MA TLAB提供了6种关系运算符:

<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)

运算法则:

(1) 当两个比较量是标量时,直接比较两个数的大小。若关系成立,关系表达式结果为1,否则为0。

(2) 当参与比较的量是两个维数相同的矩阵时,比较是对两个矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。

(3)当参与比较的一个是标量,另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的运算结果是一个维数与矩阵相同的矩阵,它的元素由0或1组成。

(4)算术运算比关系运算具有更高的优先权。

A=[1,1,2;2,3,1;4,2,1];

B=[1,1,1;1,1,1;1,1,1];

A<=B

ans=

1 1 0

00 1

00 1

2.3.3 逻辑表达式

MA TLAB提供了三种逻辑运算符:&(与)、|(或)、~(非)。

运算法则:

(1)逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。(2)若参与逻辑运算的是两个标量a和b,那么

a&b a,b全为非零时,运算结果为1,否则为0。

a|b a,b中只要有一个非零,运算结果为1.

~a 当a是零时,运算结果为1,当a是非零时,运算结果为0。

(3)若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终结果是一个与原矩阵同维数的矩阵,其元素由1或0组成。

(4)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终结果是一个与矩阵同维数的矩阵,其元素由1或0组成。

(5)逻辑“非”是单目运算符,也服从矩阵运算规则。

(6)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。

例:A=[0 1 0 2

0 3 0 4];

B=[0 1 0 0

0 1 0 0];

A&B

ans=

0 1 0 0

0 1 0 0

A|B

ans=

0 1 0 1

0 1 0 1

~A

ans=

1 0 1 0

1 0 1 0

2.4 MATLAB常用数学函数

MATLAB提供了几乎所有初等数学函数,包括三角函数、对数函数、指数函数和复数运算函数等。函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。函数的调用格式为:

函数名(变量)

1.三角函数

sin 正弦函数cos 余弦函数

tan 正切函数asin 反正弦函数

acos 反余弦函数atan 反正切函数

sinh 双曲正弦函数cosh 双曲余弦函数

tanh 双曲正切函数asinh 反双曲正弦函数

acosh 反双曲余弦函数atanh 反双曲正切函数

2.基本函数

abs 实数的绝对值、复数的模、字符串的ASCII码值

angle 复数的复角sqrt 平方根函数

real 复数的实部imag 复数的虚部

conj 复数共轭运算round 四舍五入到最近邻的整数

fix 向零方向取整floor 不大于自变量的最大整数

sign 符号函数ceil 不小于自变量的最小整数

rem 求余数或模运算gcd 最大公因子

lcm 最小公倍数exp 自然指数函数

log 自然对数函数log10 以10为底的对数函数

例:

a=[1 2 3 4 5]; %定义向量a

sin(a) %计算向量a的正弦

ans=

0.84150.9093 0.1411 -0.7568 -0.9589

fix(pi*a)

ans=

3 6 9 12 15

2.5 矩阵的基本运算

矩阵运算是MA TLAB运算的基础。

1.矩阵转置

矩阵的转置用符号“’”来表示和实现。假如A矩阵为一个m*n矩阵,则其转置矩阵B的元素定义如下:

b ji=a ij (i=1,…,m,j=1,…,n)

例如:

A=[1 2 3;4 5 6;7 8 9];

B=A’

输出为:

B=

1 4 7

2 5 8

3 6 9

若A 矩阵含有复数元素,则对之进行转置时,其转置矩阵B 的元素定义为b ji *=a ij ,i=1,…,m,j=1,…n,亦即首先对各个元素进行转置,然后再逐项求取其共轭复

数值,这种转置方式又称为Hermit 转置,其数学记号为B=A *。例如:

A=[5+i,2-i,3.1;6*i,4,7-2i];

B=A ’

B=

5.0000-1.0000i 0-

6.0000i

2.0000+1.0000i 4.0000

3.1000 7.0000+2.0000i

2. 矩阵的加和减

矩阵的加减运算使用的是“+”和“-”运算符。假设有两个矩阵A 和B ,则可以由下面的命令执行矩阵加减法:C=A+B 和C=A-B 。运算规则是:若A 和B 矩阵的维数相同,则可以执行矩阵的加减法,矩阵的加减就是A 和B 矩阵的相应元素相加减。如果A 和B 的维数不相同,则MATLAB 将给出错误信息,提示用户两个矩阵的维数不匹配。

3. 矩阵乘法

矩阵乘法用*表示。假设有两个矩阵A 和B ,若A 为n m ?矩阵,B 为n ?p 矩阵,则C=A*B 是m ?p 矩阵,其各个元素为:

c ij =kj n k ik b a

?∑=1 (i=1,2,…,m;j=1,2,…,p)

例如:

A=[1,2,3;4,5,6];B=[1,2;3,0;7,4];

C=A*B

C=

28 14

61 32

矩阵A 和B 进行乘法运算,要求A 的列数与B 的行数相同,此时称A,B 矩阵是可乘的,或称A 和B 矩阵维数相容。如果两者的维数不相容,则将给出错误信息,表示两个矩阵是不可乘的。

在MATLAB 中还可以进行矩阵和标量相乘,标量可以是乘数也可以是被乘数。

矩阵和标量相乘是矩阵中的每个元素与此标量相乘。

3.矩阵除法

在MA TLAB中有两种矩阵除法运算:\和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则A\B和B/A运算可以实现。A\B等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。对于矩阵运算,一般A\B≠B/A。

4.矩阵的乘方

一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。例如:

A=[1,2,3;4,5,6;7,8,0];

A^2

ans=

30 36 15

66 81 42

39 54 69

显然,A^2即A*A。

5.MATLAB的常用矩阵运算函数

(1)size()函数

size()函数用于计算矩阵的行数和列数,其调用格式为:

[m,n]=size(a) 将矩阵a的行数赋值给m、列数赋值给n

例如,运行如下命令:

a=[1 3 5 7 9

2 4 6 8 10];

[m,n]=size(a)

运行结果为:

m=

2

n=

5

(2)length()函数

length()函数用于计算矩阵的长度(列数),调用格式为:

a=length(b) 将矩阵b的列数赋值给变量a

例如,运行如下命令:

b=ones(1,100);

a=length(b)

运行结果为:

a=

100

3.prod()函数

prod()函数用于实现矩阵元素的求积运算,其调用格式为:

●prod(a) 若a为向量,则该调用格式将计算出向量a所有元素之积。若a为矩阵,则该调用格式将产生一行向量,其元素分别为矩阵a的各列元素之积。

●prod(a,k) 该调用格式将对矩阵a按k定义的方向进行求积运算,若k=1则按列的方向求积,若k=2则按行的方向求积。

例如,运行如下命令:

b=[1 1 1 1

2 2 2 2

3 3 3 3];

p1=prod(b)

p2=prod(b,2)

运行结果为:

p1=

6 6 6 6

p2=

1

16

81

4.sum()函数

sum()函数用于实现矩阵元素的求和运算,其调用格式与prod()函数类似。

5.max()函数

max()函数用于求出矩阵元素的最大值,其调用格式为:

●max(a) 若a为向量,则该调用格式将求出向量a所有元素中的最大值。若a为矩阵,该调用格式将产生一行向量,其元素分别为矩阵a的各列元素的最大值。

●max(a,k) 该调用格式将对矩阵a按k定义的方向求最大值,若k=1则按列的方向求最大值,若k=2则按行的方向求最大值。

另外,与max()相类似的函数还有min()(求最小值)和mean()(求平均值)函数,它们的调用格式与max函数完全相同。

(6)fliplr()函数

fliplr()函数用于实现矩阵的反折运算,即调用格式为:

a=fliplr(b)

该命令将产生维数与矩阵b相同的矩阵a,其元素是由矩阵b的元素按列的方向进行反折而得。例如,执行:

b=0:10

a=fliplr(b)

则结果为:

b=

0 1 2 3 4 5 6 7 8 9 10

a=

109 8 7 6 5 4 3 2 1 0

2.6 矩阵的.点操作运算

MATLAB中.点操作运算符由矩阵运算符前面加一点“.”来表示,如.*、./、.^等。

1.矩阵的点乘和点除

矩阵的点乘用符号.*表示。如果A、B两矩阵具有相同的维数,则A.*B表示A 和B单个元素之间的对应相乘。例如:

x=[1 2 3];y=[4 5 6];

z=x.*y

z=

4 10 18

矩阵的点除用符号./或.\表示。如果A、B两矩阵具有相同的维数,则A./B表示A矩阵的元素除以B矩阵的对应元素。B.\A等价于A./B。例如:

x=[1 2 3];y=[4 5 6];

z1=x./y

z2=y.\x

输出分别为:

z1=

0.2500 0.4000 0.5000

z2=

0.2500 0.4000 0.5000

2.矩阵的点乘方

矩阵的乘方用符号“.^”表示。若两个矩阵的维数一致,则两矩阵对应元素进行乘方运算,例如:

x=[1 2 3];y=[4 5 6];

z=x.^y

z=

1 3

2 729

指数可以是标量,底也可以是标量。例如:

x=[1 2 3];

z=x.^2

z=

1 4 9

相关主题
文本预览
相关文档 最新文档