matlab概率统计第2讲课件_第1页
matlab概率统计第2讲课件_第2页
matlab概率统计第2讲课件_第3页
matlab概率统计第2讲课件_第4页
matlab概率统计第2讲课件_第5页
已阅读5页,还剩127页未读 继续免费阅读

下载本文档

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

文档简介

数组和矩阵第二讲.1数组和矩阵第二讲.1x=linspace(0,pi,11)%11个从0到pi的等间隔数.1)

数组的简单构造:数组常采用“

:”和函数“

linspace”两种输入方式,如:x=1:5(从1到5公差为1的等差数组)x=0:0.1:1(从0到1,公差为0.1)数组的运算.2x=linspace(0,pi,11)%11个从0x(1:5)表示x的第1到第5个元素构成的数组.

x(3)表示x的第3个元素2)

数组的操作数组的运算.3x(1:5)表示x的第1到第5个元素构成的数组.x(设a=[a1a2a3],b=[b1b2b3],c=标量标量加法a+c=[a1+c

a2+c

a3+c];标量乘法a*c=[a1*c

a2*c

a3*c];数组加法a+b=[a1+b1a2+b2a3+b3];数组乘法a.*b=[a1*b1a2*b2a3*b3];数组右除a./b=[a1/b1a2/b2a3/b3];数组左除a.\b=[b1/a1b2/a2b3/a3];数组的运算.4设a=[a1a2a3],b=[b1b2b3]max(v)求最大值min(v)求最小值sum(v)求和mean(v)求平均值sort(v)按升序排列数组的运算数组求幂a.^c=[a1^c

a2^c

a3^c];

c.^a=[c^a1c^a2c^a3];a.^b=[a1^b1a2^b2a3^b3];.5max(v)求最大值数组的运算数组求幂矩阵的创建标量的创建直接输入:>>x=7x=7.6矩阵的创建标量的创建直接输入:.6行、列向量的创建1、逐个元素输入法>>x=[2pi/23+5i] x= 2.00001.57083.0000+5.0000i>>x=[0;1;2]x=012

.7行、列向量的创建1、逐个元素输入法.72、冒号生成法

>>x=0:0.5:1x= 00.50001.00003、定数线性采样法

>>x=linspace(0,2,3) x= 012.82、冒号生成法.8输出:A=

123456

或键入:A=[123

456]1)

矩阵的直接定义键入:A=[123;456]矩阵的创建.9输出:A=1)矩阵的直接定义键入:A=[123;4>>A=[123;456;789]A=123456789.10>>A=[123;456;789].102)利用M文件建立矩阵

对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件.下面通过一个简单例子来说明如何利用M文件创建矩阵.例利用M文件建立MYMAT矩阵.

(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵;(2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m).

(3)在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用..112)利用M文件建立矩阵对于比较大且特殊矩阵的创建零矩阵、1矩阵和单位矩阵随机矩阵对角矩阵和三角矩阵子矩阵其它特殊矩阵.12特殊矩阵的创建零矩阵、1矩阵和单位矩阵.12a.零矩阵、1矩阵和单位矩阵命令运行结果ones(n)建立n×n的1矩阵ones(m,n)建立m×n的1矩阵ones(size(A))建立与矩阵A同维的1矩阵zeros(n)建立n×n的0矩阵zeros(m,n)建立m×n的0矩阵zeros(size(A))建立与矩阵A同维的0矩阵eye(n)建立n×n的单位矩阵eye(m,n)建立m×n的单位矩阵eye(size(A))建立与矩阵A同维的单位矩阵.13a.零矩阵、1矩阵和单位矩阵命令运行结果ones(n)建立nb.零矩阵、1矩阵和单位矩阵命令运行结果rand(n)建立n×n的矩阵,其元素为0~1间均匀分布的随机数rand(m,n)建立m×n的矩阵,其元素为0~1间均匀分布的随机数randn(n)建立n×n的矩阵,其元素为均值为0、方差为1的正态分布的随机数randn(m,n)建立m×n的矩阵,其元素为均值为0、方差为1的正态分布的随机数.14b.零矩阵、1矩阵和单位矩阵命令运行结果rand(n)建立c.对角矩阵命令运行结果diag(A)生成一个由矩阵A主对角线元素组成的列向量。主对角线总是从矩阵左上角开始。对于方阵来说结束于矩阵的右下角。diag(x)生成一个n维的方阵,它的主对角线元素取自向量x,其余为0。diag(A,k)生成一个由矩阵A第k条对角线元素组成的列向量。k=0为主对角线;k<0为下第k对角线;k>0为上第k对角线。.15c.对角矩阵命令运行结果diag(A)生成一个由矩阵A主c.三角矩阵命令运行结果triu(A)生成一个和A维数相同的上三角矩阵。该矩阵主对角线及以上元素取自A中相应元素。其余元素为0。triu(A,k)生成一个和A维数相同的上三角矩阵。该矩阵第k条对角线及以上元素取自A中相应元素。其余元素为0。tril(A)生成一个和A维数相同的下三角矩阵。该矩阵主对角线及以下元素取自A中相应元素。其余元素为0。tril(A,k)生成一个和A维数相同的下三角矩阵。该矩阵第k条对角线及以下元素取自A中相应元素。其余元素为0。.16c.三角矩阵命令运行结果triu(A)生成一个和A维数相同d.子矩阵命令运行结果A(:,j:k)返回由二维矩阵A中的第j列,第j+1列,直到第k列列向量组成的子阵。A(i:k,:)返回由二维矩阵A中的第i行,第i+1行,直到第k行行向量组成的子阵。A(i:k,j:l)返回由二维矩阵A中的第i到k行行向量和第j到l列列向量组成的子阵。.17d.子矩阵命令运行结果A(:,j:k)返回由二维矩阵A中e.特殊矩阵命令运行结果hilb(n)生成n×n的希尔波特矩阵toeplitz(k,r)生成非对称的托普利兹矩阵pascal(n)pascal矩阵(帕斯卡矩阵)rosserrosser矩阵gallery(n)数字分析中有名的n×n试验矩阵wilkinson(n)返回wilkinson特征值测试矩阵magic(n)魔方矩阵………….18e.特殊矩阵命令运行结果hilb(n)生成n×n的希尔波特例:分别建立3×3、3×2和与矩阵A同样大小的零矩阵.

(1)建立一个3×3零矩阵。

zeros(3)

(2)建立一个3×2零矩阵。

zeros(3,2)

(3)设A为2×3矩阵,则可以用zeros(size(A))建立一个与矩阵A同样大小零矩阵。

A=[123;456];

%产生一个2×3阶矩阵A

zeros(size(A))

%产生一个与矩阵A同样大小的零矩阵.19例:分别建立3×3、3×2和与矩阵A同样大小的零矩阵.

.例:建立随机矩阵

(1)在区间[20,50]内均匀分布的5阶随机矩阵。

(2)均值为0.6、方差为0.1的5阶正态分布随机矩阵。

命令如下:

x=20+(50-20)*rand(5)

y=0.6+sqrt(0.1)*randn(5)

此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。.20例:建立随机矩阵.20用于专门学科的特殊矩阵

(1)魔方矩阵

魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。.21用于专门学科的特殊矩阵

.21例:将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565.

M=100+magic(5).22例:将101~125等25个数填入一个5行5列的表格中,

(2)伴随矩阵

MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后.例如,为了求多项式的x3-7x+6的伴随矩阵,可使用命令:

p=[1,0,-7,6];

compan(p).23(2)伴随矩阵

MATLAB生成伴随矩阵的函数是comp

(3)帕斯卡矩阵

我们知道,二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形.由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵.

函数pascal(n)生成一个n阶帕斯卡矩阵。.24(3)帕斯卡矩阵

.24例:求(x+y)5的展开式。

在MATLAB命令窗口,输入命令:

pascal(6)

矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。.25例:求(x+y)5的展开式。

在MATLAB命令窗口,输

从一个矩阵中取出若干行(列)构成新矩阵称为剪裁,“:”是非常重要的剪裁工具.4)矩阵的剪裁.26从一个矩阵中取出若干行(列)构成新矩阵称为剪裁,“【例】向量的裁剪>>x=[0.95010.23110.60680.48600.8913]>>x(3) ans=0.6068>>x([125]) ans=0.95010.23110.8913.27【例】向量的裁剪.27>>x(1:3) ans=0.95010.23110.6068>>x(3) =[] %删除第3个元素

ans=0.95010.23110.48600.8913>>x(3:end) ans=0.60680.48600.8913>>x(3:-1:1) ans=0.60680.23110.9501.28>>x(1:3) .28>>x(6)=1.05%加入第六个元素ans=0.95010.23110.60680.48600.89131.05>>x(find(x>0.5))ans=0.95010.60680.8913>>x([12344321])ans=Columns1through80.95010.23110.60680.48600.48600.60680.23110.9501.29>>x(6)=1.05%加入第六个元素.29利用空矩阵删除矩阵的元素

在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。注意,X=[]与clearX不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。.30利用空矩阵删除矩阵的元素

在MATLAB中,定义[]矩阵的裁剪命令说明A(r,c)r行c列元素组成A(r,:)r行全部列元素组成A(:,c)全部行c列元素组成A(:)单下标全元素寻访A(r,c)=Sa双下标赋值方式A(:)=D(:)全元素赋值方式A(s)=Sa单下标赋值方式.31矩阵的裁剪命令说明A(r,c)r行c列元素组成A(r,:)r【例】键入:A=[123;456;789];

A(3,:)%A的第三行

输出:ans=

789.32【例】.32键入:B=A(2:3,:)%A的2,3行输出:B=456789

键入:A(:,1)%A的第一列

输出:ans=

147.33键入:B=A(2:3,:)%A的2,3行.键入:A=[123;456;789];

C=A(1:2,[13])%A的第1,2行,

%A的第1,3列

输出:C=

13

46

还有A(1:2:3,3:-1:1)

.34键入:A=[123;456;789];.34例键入:D=[C,zeros(2,1)]输出:D=130460将几个矩阵接在一起称为拼接,左右拼接行数要相同,上下拼接列数要相同。5)矩阵的拼接.35例将几个矩阵接在一起称为拼接,左右拼接行数要相同,上下拼接列键入:E=[D;eye(2),ones(2,1)]输出:E=

130

460

101

011.36键入:E=[D;eye(2),ones(2,1)].36矩阵的运算+

矩阵加法;

-

矩阵减法;*

矩阵乘法;

矩阵转置;

^

矩阵乘幂;

\

矩阵左除;

/

矩阵右除。[注意]运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。.37矩阵的运算+矩阵加法;-矩阵减法;

(1)矩阵加减运算

假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。.38(1)矩阵加减运算

.38(2)矩阵乘法

假定有两个矩阵A和B,若A为m×n矩阵,B为n×p矩阵,则C=A*B为m×p矩阵。.39(2)矩阵乘法

.39

(3)矩阵除法

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

对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系.对于矩阵运算,一般A\B≠B/A..40(3)矩阵除法

在MATLAB中,有XA=B的解是A右除B,即X=B/A。例如,设A是可逆矩阵,AX=B的解是A左除B,即X=A\B;(4)矩阵的乘方

一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。.41XA=B的解是A右除B,即X=B/A。例如,设A是可逆矩阵

inv(A)

矩阵的逆;rank(A)

矩阵秩

det(A)

矩阵的行列式;orth(A)

正交化

poly(A)

特征多项式

d=eig(A),

[v,d]=eig(A)

特征值与特征向量

size(A)

返回一个二元素向量,第一个元素为A的行数,第二个元素为A的列数size(A,1)

返回A的行数size(A,2)

返回A的列数length(A)

返回max(size(A))diag(A)

提取A的对角元素返回列向量矩阵的运算.42inv(A)矩阵的逆;ra点运算

在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.\和.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。矩阵的运算例.43点运算

在MATLAB中,有一种特殊的运算,矩阵的关系运算

MATLAB提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。.44矩阵的关系运算

.44关系运算关系操作符对应函数说明==eq(A,B)等于~=ne(A,B)不等于<lt(A,B)小于>gt(A,B)大于<=le(A,B)小于等于>=ge(A,B)大于等于.45关系运算关系操作符对应函数说明==eq(A,关系运算符的运算法则为:

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

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

(1)当两个比较(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。.47(3)当参与比较的一个是标量,而另例:A=[345678];B=[246758];C=eq(A,B)运行结果如下:C=010001运行结果如下:D=010001D=ne(A,B)E=lt(A,B)运行结果如下:E=001100.48例:A=[345678];运行结果如下:例:A=4;B=[23456];C=eq(A,B)运行结果如下:C=00100D=A>B运行结果如下:D=11000E=A<=B运行结果如下:E=00111.49例:A=4;运行结果如下:C=D=A>B运行结果

由上例可知,所比较的两个量可以是大小相同的数组或矩阵,运算后返回同样大小的数组或矩阵.所比较的两个量也可以一个是数组或矩阵,另一个是标量,运算后返回的运行结果与数组或矩阵的大小相等.两个不同大小的数组或矩阵不能进行比较.在做关系运算时,用关系运算符或函数其效果相同..50由上例可知,所比较的两个量可以是大小相同的数逻辑运算

MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非)。逻辑运算逻辑操作符对应函数说明&and(A,B)逻辑与|or(A,B)逻辑或~not(A)逻辑非xor(A,B)逻辑异或any(A)A中某列有非零元素时此列返回1all(A)A中某列所有元素非零时此列返回1.51逻辑运算MATLAB提供了3种逻辑运算符:&(与)逻辑运算的运算法则为:

(1)在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示.

(2)设参与逻辑运算的是两个标量a和b,那么

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

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

~a

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

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

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

(1)在逻辑运算中(5)逻辑非是单目运算符,也服从矩阵运算规则.(6)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。.53(5)逻辑非是单目运算符,也服从矩阵运算规则..53例:建立矩阵A,然后找出大于4的元素的位置.

(1)建立矩阵A。

A=[4,-65,-54,0,6;56,0,67,-45,0]

(2)找出大于4的元素的位置。

find(A>4).54例:建立矩阵A,然后找出大于4的元素的位置.

.54矩阵的转置与旋转1.矩阵的转置

转置运算符是单撇号(’)。2.矩阵的旋转

利用函数rot90(A,k)将矩阵A旋转90º的k倍,当k为1时可省略.3.矩阵的左右翻转

对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,依次类推。MATLAB对矩阵A实施左右翻转的函数是fliplr(A)4.矩阵的上下翻转

MATLAB对矩阵A实施上下翻转的函数是flipud(A)。.55矩阵的转置与旋转3.矩阵的左右翻转

对矩阵实施左右翻转是将原矩阵的逆与伪逆

1.矩阵的逆

对于一个方阵A,如果存在一个与其同阶的方阵B,使得:

A·B=B·A=I(I为单位矩阵)

则称B为A的逆矩阵,当然,A也是B的逆矩阵。

求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在MATLAB中,求一个矩阵的逆非常容易。求方阵A的逆矩阵可调用函数inv(A)。

例:用求逆矩阵的方法解线性方程组。

Ax=b

其解为:

x=A-1b.56矩阵的逆与伪逆

1.矩阵的逆

对于一个方阵A,如果存在一个与2.矩阵的伪逆

如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A’同型的矩阵B,使得:

A·B·A=A

B·A·B=B

此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵.在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。.572.矩阵的伪逆

.57方阵的行列式

把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值.在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)..58方阵的行列式.58矩阵的秩与迹

1.矩阵的秩

矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是rank(A)。2.矩阵的迹

矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。.59矩阵的秩与迹

.59向量和矩阵的范数

矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。.60向量和矩阵的范数

.601.向量的3种常用范数及其计算函数

在MATLAB中,求向量范数的函数为:

(1)norm(V)或norm(V,2):计算向量V的2—范数.

(2)norm(V,1):计算向量V的1—范数。

(3)norm(V,inf):计算向量V的∞—范数。2.矩阵的范数及其计算函数

MATLAB提供了求3种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同..611.向量的3种常用范数及其计算函数

在MATLAB中,求向量矩阵的特征值与特征向量

在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有3种:

(1)E=eig(A):求矩阵A的全部特征值,构成向量E.

(2)[V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量.(3)[V,D]=eig(A,‘nobalance’):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量..62矩阵的特征值与特征向量

在MATLAB中,计算矩阵A的特征值例:用求特征值的方法解方程。

3x5-7x4+5x2+2x-18=0

p=[3,-7,0,5,2,-18];

A=compan(p);%A的伴随矩阵

x1=eig(A)%求A的特征值

x2=roots(p)%直接求多项式p的零点.63例:用求特征值的方法解方程。

3x5-7x4+5x2+2x-

三角函数:sin(x),sinh(x),asin(x),sinh(x),cos(x),tan(x),cot(x),sec(x),csc(x)等。

指数函数:exp(x),log(x),log10(x),log2(x),sqrt(x)等。

MATLAB中的数学函数整值函数:朝零方向取整fix(x),朝-方向取整floor(x),朝+方向取整ceil(x),

四舍五入到最接近的整数round(x),符号函数sign(x)等

其他数学函数:绝对值或复数的幅值abs(x).64三角函数:sin(x),sinh(x),常用的函数库sin(x)cos(x)tan(x)cot(x)csc(x)sec(x)sinh(x)cosh(x)tanh(x)exp(x)log(x)abs(x)angle(x)real(x)imag(x)conj(x)rem(a,b)正弦余弦正切余切正割余割双曲正弦双曲余弦双曲正切以e为底的指数自然对数绝对值、复数的模复数的相角复数的实部复数的虚部共轭复数a整除b求余数asin(x)acos(x)atan(x)acot(x)acsc(x)asec(x)asinh(x)acosh(x)atanh(x)sqrt(x)log10(x)round(x)sign(x)fix(x)floor(x)ceil(x)mod(x,m)反正弦反余弦反正切反余切反正割反余割反双曲正弦反双曲余弦反双曲正切方根以10为底的对数四舍五入为整数符号函数向0取整数向-∞取整数向+∞取整数x整除m取正余数.65常用的函数库sin(x)正弦asin(x)反正弦.65输出:ans=0.84150.90930.1411-0.7568-0.9589-0.2794

单变量数学函数的自变量可以是数组,此时,输出的是各元素的函数值构成的同样大小的数组。例如,输入:a=[123;456];sin(a)MATLAB中的数学函数.66输出:ans=单变量数学函数的自变量可以是数组,此数组和矩阵第二讲.67数组和矩阵第二讲.1x=linspace(0,pi,11)%11个从0到pi的等间隔数.1)

数组的简单构造:数组常采用“

:”和函数“

linspace”两种输入方式,如:x=1:5(从1到5公差为1的等差数组)x=0:0.1:1(从0到1,公差为0.1)数组的运算.68x=linspace(0,pi,11)%11个从0x(1:5)表示x的第1到第5个元素构成的数组.

x(3)表示x的第3个元素2)

数组的操作数组的运算.69x(1:5)表示x的第1到第5个元素构成的数组.x(设a=[a1a2a3],b=[b1b2b3],c=标量标量加法a+c=[a1+c

a2+c

a3+c];标量乘法a*c=[a1*c

a2*c

a3*c];数组加法a+b=[a1+b1a2+b2a3+b3];数组乘法a.*b=[a1*b1a2*b2a3*b3];数组右除a./b=[a1/b1a2/b2a3/b3];数组左除a.\b=[b1/a1b2/a2b3/a3];数组的运算.70设a=[a1a2a3],b=[b1b2b3]max(v)求最大值min(v)求最小值sum(v)求和mean(v)求平均值sort(v)按升序排列数组的运算数组求幂a.^c=[a1^c

a2^c

a3^c];

c.^a=[c^a1c^a2c^a3];a.^b=[a1^b1a2^b2a3^b3];.71max(v)求最大值数组的运算数组求幂矩阵的创建标量的创建直接输入:>>x=7x=7.72矩阵的创建标量的创建直接输入:.6行、列向量的创建1、逐个元素输入法>>x=[2pi/23+5i] x= 2.00001.57083.0000+5.0000i>>x=[0;1;2]x=012

.73行、列向量的创建1、逐个元素输入法.72、冒号生成法

>>x=0:0.5:1x= 00.50001.00003、定数线性采样法

>>x=linspace(0,2,3) x= 012.742、冒号生成法.8输出:A=

123456

或键入:A=[123

456]1)

矩阵的直接定义键入:A=[123;456]矩阵的创建.75输出:A=1)矩阵的直接定义键入:A=[123;4>>A=[123;456;789]A=123456789.76>>A=[123;456;789].102)利用M文件建立矩阵

对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件.下面通过一个简单例子来说明如何利用M文件创建矩阵.例利用M文件建立MYMAT矩阵.

(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵;(2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m).

(3)在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用..772)利用M文件建立矩阵对于比较大且特殊矩阵的创建零矩阵、1矩阵和单位矩阵随机矩阵对角矩阵和三角矩阵子矩阵其它特殊矩阵.78特殊矩阵的创建零矩阵、1矩阵和单位矩阵.12a.零矩阵、1矩阵和单位矩阵命令运行结果ones(n)建立n×n的1矩阵ones(m,n)建立m×n的1矩阵ones(size(A))建立与矩阵A同维的1矩阵zeros(n)建立n×n的0矩阵zeros(m,n)建立m×n的0矩阵zeros(size(A))建立与矩阵A同维的0矩阵eye(n)建立n×n的单位矩阵eye(m,n)建立m×n的单位矩阵eye(size(A))建立与矩阵A同维的单位矩阵.79a.零矩阵、1矩阵和单位矩阵命令运行结果ones(n)建立nb.零矩阵、1矩阵和单位矩阵命令运行结果rand(n)建立n×n的矩阵,其元素为0~1间均匀分布的随机数rand(m,n)建立m×n的矩阵,其元素为0~1间均匀分布的随机数randn(n)建立n×n的矩阵,其元素为均值为0、方差为1的正态分布的随机数randn(m,n)建立m×n的矩阵,其元素为均值为0、方差为1的正态分布的随机数.80b.零矩阵、1矩阵和单位矩阵命令运行结果rand(n)建立c.对角矩阵命令运行结果diag(A)生成一个由矩阵A主对角线元素组成的列向量。主对角线总是从矩阵左上角开始。对于方阵来说结束于矩阵的右下角。diag(x)生成一个n维的方阵,它的主对角线元素取自向量x,其余为0。diag(A,k)生成一个由矩阵A第k条对角线元素组成的列向量。k=0为主对角线;k<0为下第k对角线;k>0为上第k对角线。.81c.对角矩阵命令运行结果diag(A)生成一个由矩阵A主c.三角矩阵命令运行结果triu(A)生成一个和A维数相同的上三角矩阵。该矩阵主对角线及以上元素取自A中相应元素。其余元素为0。triu(A,k)生成一个和A维数相同的上三角矩阵。该矩阵第k条对角线及以上元素取自A中相应元素。其余元素为0。tril(A)生成一个和A维数相同的下三角矩阵。该矩阵主对角线及以下元素取自A中相应元素。其余元素为0。tril(A,k)生成一个和A维数相同的下三角矩阵。该矩阵第k条对角线及以下元素取自A中相应元素。其余元素为0。.82c.三角矩阵命令运行结果triu(A)生成一个和A维数相同d.子矩阵命令运行结果A(:,j:k)返回由二维矩阵A中的第j列,第j+1列,直到第k列列向量组成的子阵。A(i:k,:)返回由二维矩阵A中的第i行,第i+1行,直到第k行行向量组成的子阵。A(i:k,j:l)返回由二维矩阵A中的第i到k行行向量和第j到l列列向量组成的子阵。.83d.子矩阵命令运行结果A(:,j:k)返回由二维矩阵A中e.特殊矩阵命令运行结果hilb(n)生成n×n的希尔波特矩阵toeplitz(k,r)生成非对称的托普利兹矩阵pascal(n)pascal矩阵(帕斯卡矩阵)rosserrosser矩阵gallery(n)数字分析中有名的n×n试验矩阵wilkinson(n)返回wilkinson特征值测试矩阵magic(n)魔方矩阵………….84e.特殊矩阵命令运行结果hilb(n)生成n×n的希尔波特例:分别建立3×3、3×2和与矩阵A同样大小的零矩阵.

(1)建立一个3×3零矩阵。

zeros(3)

(2)建立一个3×2零矩阵。

zeros(3,2)

(3)设A为2×3矩阵,则可以用zeros(size(A))建立一个与矩阵A同样大小零矩阵。

A=[123;456];

%产生一个2×3阶矩阵A

zeros(size(A))

%产生一个与矩阵A同样大小的零矩阵.85例:分别建立3×3、3×2和与矩阵A同样大小的零矩阵.

.例:建立随机矩阵

(1)在区间[20,50]内均匀分布的5阶随机矩阵。

(2)均值为0.6、方差为0.1的5阶正态分布随机矩阵。

命令如下:

x=20+(50-20)*rand(5)

y=0.6+sqrt(0.1)*randn(5)

此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。.86例:建立随机矩阵.20用于专门学科的特殊矩阵

(1)魔方矩阵

魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。.87用于专门学科的特殊矩阵

.21例:将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565.

M=100+magic(5).88例:将101~125等25个数填入一个5行5列的表格中,

(2)伴随矩阵

MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后.例如,为了求多项式的x3-7x+6的伴随矩阵,可使用命令:

p=[1,0,-7,6];

compan(p).89(2)伴随矩阵

MATLAB生成伴随矩阵的函数是comp

(3)帕斯卡矩阵

我们知道,二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形.由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵.

函数pascal(n)生成一个n阶帕斯卡矩阵。.90(3)帕斯卡矩阵

.24例:求(x+y)5的展开式。

在MATLAB命令窗口,输入命令:

pascal(6)

矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。.91例:求(x+y)5的展开式。

在MATLAB命令窗口,输

从一个矩阵中取出若干行(列)构成新矩阵称为剪裁,“:”是非常重要的剪裁工具.4)矩阵的剪裁.92从一个矩阵中取出若干行(列)构成新矩阵称为剪裁,“【例】向量的裁剪>>x=[0.95010.23110.60680.48600.8913]>>x(3) ans=0.6068>>x([125]) ans=0.95010.23110.8913.93【例】向量的裁剪.27>>x(1:3) ans=0.95010.23110.6068>>x(3) =[] %删除第3个元素

ans=0.95010.23110.48600.8913>>x(3:end) ans=0.60680.48600.8913>>x(3:-1:1) ans=0.60680.23110.9501.94>>x(1:3) .28>>x(6)=1.05%加入第六个元素ans=0.95010.23110.60680.48600.89131.05>>x(find(x>0.5))ans=0.95010.60680.8913>>x([12344321])ans=Columns1through80.95010.23110.60680.48600.48600.60680.23110.9501.95>>x(6)=1.05%加入第六个元素.29利用空矩阵删除矩阵的元素

在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。注意,X=[]与clearX不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。.96利用空矩阵删除矩阵的元素

在MATLAB中,定义[]矩阵的裁剪命令说明A(r,c)r行c列元素组成A(r,:)r行全部列元素组成A(:,c)全部行c列元素组成A(:)单下标全元素寻访A(r,c)=Sa双下标赋值方式A(:)=D(:)全元素赋值方式A(s)=Sa单下标赋值方式.97矩阵的裁剪命令说明A(r,c)r行c列元素组成A(r,:)r【例】键入:A=[123;456;789];

A(3,:)%A的第三行

输出:ans=

789.98【例】.32键入:B=A(2:3,:)%A的2,3行输出:B=456789

键入:A(:,1)%A的第一列

输出:ans=

147.99键入:B=A(2:3,:)%A的2,3行.键入:A=[123;456;789];

C=A(1:2,[13])%A的第1,2行,

%A的第1,3列

输出:C=

13

46

还有A(1:2:3,3:-1:1)

.100键入:A=[123;456;789];.34例键入:D=[C,zeros(2,1)]输出:D=130460将几个矩阵接在一起称为拼接,左右拼接行数要相同,上下拼接列数要相同。5)矩阵的拼接.101例将几个矩阵接在一起称为拼接,左右拼接行数要相同,上下拼接列键入:E=[D;eye(2),ones(2,1)]输出:E=

130

460

101

011.102键入:E=[D;eye(2),ones(2,1)].36矩阵的运算+

矩阵加法;

-

矩阵减法;*

矩阵乘法;

矩阵转置;

^

矩阵乘幂;

\

矩阵左除;

/

矩阵右除。[注意]运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。.103矩阵的运算+矩阵加法;-矩阵减法;

(1)矩阵加减运算

假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。.104(1)矩阵加减运算

.38(2)矩阵乘法

假定有两个矩阵A和B,若A为m×n矩阵,B为n×p矩阵,则C=A*B为m×p矩阵。.105(2)矩阵乘法

.39

(3)矩阵除法

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

对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系.对于矩阵运算,一般A\B≠B/A..106(3)矩阵除法

在MATLAB中,有XA=B的解是A右除B,即X=B/A。例如,设A是可逆矩阵,AX=B的解是A左除B,即X=A\B;(4)矩阵的乘方

一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。.107XA=B的解是A右除B,即X=B/A。例如,设A是可逆矩阵

inv(A)

矩阵的逆;rank(A)

矩阵秩

det(A)

矩阵的行列式;orth(A)

正交化

poly(A)

特征多项式

d=eig(A),

[v,d]=eig(A)

特征值与特征向量

size(A)

返回一个二元素向量,第一个元素为A的行数,第二个元素为A的列数size(A,1)

返回A的行数size(A,2)

返回A的列数length(A)

返回max(size(A))diag(A)

提取A的对角元素返回列向量矩阵的运算.108inv(A)矩阵的逆;ra点运算

在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.\和.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。矩阵的运算例.109点运算

在MATLAB中,有一种特殊的运算,矩阵的关系运算

MATLAB提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。.110矩阵的关系运算

.44关系运算关系操作符对应函数说明==eq(A,B)等于~=ne(A,B)不等于<lt(A,B)小于>gt(A,B)大于<=le(A,B)小于等于>=ge(A,B)大于等于.111关系运算关系操作符对应函数说明==eq(A,关系运算符的运算法则为:

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

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

(1)当两个比较(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。.113(3)当参与比较的一个是标量,而另例:A=[345678];B=[246758];C=eq(A,B)运行结果如下:C=010001运行结果如下:D=010001D=ne(A,B)E=lt(A,B)运行结果如下:E=001100.114例:A=[345678];运行结果如下:例:A=4;B=[23456];C=eq(A,B)运行结果如下:C=00100D=A>B运行结果如下:D=11000E=A<=B运行结果如下:E=00111.115例:A=4;运行结果如下:C=D=A>B运行结果

由上例可知,所比较的两个量可以是大小相同的数组或矩阵,运算后返回同样大小的数组或矩阵.所比较的两个量也可以一个是数组或矩阵,另一个是标量,运算后返回的运行结果与数组或矩阵的大小相等.两个不同大小的数组或矩阵不能进行比较.在做关系运算时,用关系运算符或函数其效果相同..116由上例可知,所比较的两个量可以是大小相同的数逻辑运算

MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非)。逻辑运算逻辑操作符对应函数说明&and(A,B)逻辑与|or(A,B)逻辑或~not(A)逻辑非xor(A,B)逻辑异或any(A)A中某列有非零元素时此列返回1all(A)A中某列所有元素非零时此列返回1.117逻辑运算MATLAB提供了3种逻辑运算符:&(与)逻辑运算的运算法则为:

(1)在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示.

(2)设参与逻辑运算的是两个标量a和b,那么

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

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

~a

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

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

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

(1)在逻辑运算中(5)逻辑非是单目运算符,也服从矩阵运算规则.(6)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。.119(5)逻辑非是单目运算符,也服从矩阵运算规则..53例:建立矩阵A,然后找出大于4的元素的位置.

(1)建立矩阵A。

A=[4,-65,-54,0,6;56,0,67,-45,0]

(2)找出大于4的元素的位置。

find(A>4).120例:建立矩阵A,然后找出大于4的元素的位置.

.54矩阵的转置与旋转1.矩阵的转置

转置运算符是单撇号(’)。2.矩阵的旋转

利用函数rot90(A,k)将矩阵A旋转90º的k倍,当k为1时可省略.3.矩阵的左右翻转

对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,依次类推。MATLAB对矩阵A实施左右翻转的函数是fliplr(A)4.矩阵的上下翻转

MATLAB

温馨提示

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

评论

0/150

提交评论