第三讲矩阵的基本运算

上传人:pu****.1 文档编号:586063881 上传时间:2024-09-03 格式:PPT 页数:33 大小:239.50KB
返回 下载 相关 举报
第三讲矩阵的基本运算_第1页
第1页 / 共33页
第三讲矩阵的基本运算_第2页
第2页 / 共33页
第三讲矩阵的基本运算_第3页
第3页 / 共33页
第三讲矩阵的基本运算_第4页
第4页 / 共33页
第三讲矩阵的基本运算_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《第三讲矩阵的基本运算》由会员分享,可在线阅读,更多相关《第三讲矩阵的基本运算(33页珍藏版)》请在金锄头文库上搜索。

1、1第三讲内容介绍第三讲内容介绍目标:进一步了解目标:进一步了解MATLABMATLAB,能够能够熟练掌握矩阵的各种基本运算法熟练掌握矩阵的各种基本运算法则。则。23.1 MATLAB矩阵的代数运算3.1.1 加法和减法运算加法和减法运算 C=A+B或或 C=plus(A,B) C=A-B或或C=minus(A,B)注意:加减运算要求注意:加减运算要求A、B同构,即大小一样同构,即大小一样特别地,特别地,标量可以和任意大小的矩阵进行加减例题例题3.1.1显然略讲显然略讲3.1.2 乘法运算乘法运算普通矩阵乘法:普通矩阵乘法:C=A*B或或C=mtimes(A,B)矩阵的数值乘法:矩阵的数值乘法:

2、C=A.*B或或C=times(A,B)数值乘法也叫点乘,要求数值乘法也叫点乘,要求A、B同构。同构。标量可以和任意大小的矩阵相乘(此时,普乘和点乘结果一样)。标量可以和任意大小的矩阵相乘(此时,普乘和点乘结果一样)。见例题见例题3.1.233.1.3 矩阵的除法矩阵的除法1. 方阵的求逆方阵的求逆: B=inv(A)2. 除法运算(分左除和右除)除法运算(分左除和右除)1)普通除法普通除法左除:左除:C=AB或或C=mldivide(A,B)右除:右除: C=A/B或或C=mrdivide(A,B)一般地,左除不等于右除;显然,若一般地,左除不等于右除;显然,若A可逆,则可逆,则C=AB=i

3、nv(A)*B;若若B可可逆,则逆,则C=A/B=A*inv(B);显然,(显然,(1)对于线性方程组)对于线性方程组AX=B,若若A为可逆,则为可逆,则X=AB=inv(A)*B;(2)对于线性方程组)对于线性方程组XA=B,若若A为可逆,则为可逆,则X=B/A=B*inv(A);42) 数值除法数值除法数值左除:数值左除:C=A.B或或ldivide(A,B)数值右除:数值右除:C=A./B或或rdivide(A,B)要求要求A和和B同构,是对应元素相除。同构,是对应元素相除。显然显然A./B=B.A;若若B可逆,则可逆,则A/B和和BA不一定不一定相等。相等。注意:对于注意:对于AB o

4、r B/A;A.B or B./A,A可以是可以是标量;而对于标量;而对于AB or B/A,若,若A是矩阵,是矩阵,B是标是标量,则出错!对于量,则出错!对于A.B or B./A,可以,可以B是标量,是标量,A是矩阵。是矩阵。5矩阵特征值和特征向量 E=eig(A) 求特征值V,D=eig(A) D是特征值构成的对角阵;V是特征向量阵,列为特征向量。对称正定阵的cholesky分解R=chol(A) A对称正定,R为上三角阵,R*R=A方阵的QR分解Q,R=qr(A) Q为正交矩阵,R为上三角阵,Q*R=A可逆阵的 LU分解L,U=lu(A) L是下三角阵,U是上三角阵这些对解线性方程组还

5、是很有利的。63.1.4 矩阵的乘方运算矩阵的乘方运算分为普通乘方和数值乘方两种,分别为:分为普通乘方和数值乘方两种,分别为:C=AB or C=mpower(A,B) C=A.B or C=power(A,B)注意:普通乘方要求注意:普通乘方要求A是方阵,是方阵,B是标量:若是标量:若B是正整数,是正整数,显然;若显然;若B是负整数,则是负整数,则AB=(inv(A)abs(B);若若B不是整数,并且不是整数,并且A的特征值矩阵为的特征值矩阵为D,特征向量矩阵为特征向量矩阵为V,则则AB=V*(D.B)/V,其中其中D为对角阵,为对角阵,D.B为数值的乘为数值的乘方。方。对于对于数值乘方而言

6、:数值乘方而言:A和和B大小相等,针对元素来运算。大小相等,针对元素来运算。73.1.5 矩阵的转置和共轭转置矩阵的转置和共轭转置复矩阵的复矩阵的共轭转置共轭转置:B=A or B=ctranspose(A);复矩阵的复矩阵的转置转置:B=A. or B=transpose(A)注意:共轭转置是指先每个元素求共轭,再把矩注意:共轭转置是指先每个元素求共轭,再把矩阵转置;转置运算是点运算。阵转置;转置运算是点运算。3.1.6 矩阵的函数运算矩阵的函数运算1. 常用函数见常用函数见P59函数表,是对每个元素求函数值函数表,是对每个元素求函数值记住一些常用函数格式!记住一些常用函数格式!8例例. 已

7、知已知求:求:AB,B-1,B-AT,|A|解:解:A=1,2,3;4,5,6;7,8,0;B=1,2,1;1,1,2;2,1,1; a=A*B,b=inv(B),c=B-A,d=det(A)a = 9 7 8 21 19 20 15 22 23b = -1/4 1/4 -3/4 3/4 -1/4 -1/4 -1/4 3/4 -1/4c = 0 -2 -6 -1 -4 -6 -1 -5 1det(A)=2792.数据分析函数数据分析函数mean(A) A中各列向量的均值中各列向量的均值 var(A) A中各列向量的方差中各列向量的方差 std(A) A中各列向量的标准差中各列向量的标准差 co

8、v(A) A中各列向量的协方差矩阵中各列向量的协方差矩阵corrcoef(A) A中各列向量的相关矩阵中各列向量的相关矩阵其它的函数如其它的函数如prod(求积)、求积)、max、sum、min等等均按列均按列进行运算。进行运算。103.2 矩阵的关系运算矩阵的关系运算所有关系表达式,所有关系表达式,matlab把把“真真”值输出为值输出为“1”;把把“假假”值输出为值输出为“0”。关系运算符有:关系运算符有:、=、=、=注意:在关系运算中注意:在关系运算中A、B结构相同,当然可以其中结构相同,当然可以其中一个为标量。一个为标量。3.2.1 小于:小于:C=(AB) or C=AB or C=

9、lt(A,B)3.2.2 小于等于:小于等于:C=(A=B) or C=AB) or C=AB or C=gt(A,B)3.2.4 大于等于大于等于 :C=(A=B) or C=A=B or C=ge(A,B)113.2.5 相等:相等: C=(A=B) or C=A=B or C=eq(A,B)3.2.6 不等不等:C=(A=B) or C=A=B or C=ne(A,B)123.3 MATLAB矩阵的逻辑运算:矩阵的逻辑运算:3.3.1 运运算算符符有有四四种种:&(与与)、|(或或)、(非非)、xor(异或)。异或)。逻逻辑辑运运算算的的结结果果是是由由0或或1组组成成的的矩矩阵阵;逻逻

10、辑辑运运算算符符按按元元素素进进行行比比较较,运运算算对对象象可可以以都都是是矩矩阵阵(此此时时大小一样),也可以是其它情况。大小一样),也可以是其它情况。1.与:与:C=(A&B) or C=A&B or C=and(A,B)2.或:或: C=(A|B) or C=A|B or C=or(A,B)3.非:非: C=(A) or C=A or C=not(A)4.异异或或:当当参参加加运运算算的的两两个个元元素素有有一一个个为为“0”,另另一一个个是是非非零零时时,结结果果为为“1”,其其它它结结果果均均为为“0”。C=xor(A,B)135.快速运算符快速运算符(1)快速逻辑与运算:)快速逻

11、辑与运算:C=(A&B) or C=A&B若若A的元素为的元素为0,则,则C的相应元素直接为的相应元素直接为0;若;若A的元素为的元素为1,再去计算,再去计算B的的元素的值。元素的值。(2)快速逻辑或运算:)快速逻辑或运算: C=(A|B) or C=A|B若若A的元素为的元素为1,则,则C的相应元素直接为的相应元素直接为1;若;若A的元素为的元素为0,再去计算,再去计算B的的元素的值。元素的值。3.3.2 逻辑运算函数(以此方便查找矩阵中满足条件的部分或所有元素)逻辑运算函数(以此方便查找矩阵中满足条件的部分或所有元素)1.all函数函数(1)all(x):x为向量,若向量中所有元素均非零,

12、则函数值为为向量,若向量中所有元素均非零,则函数值为“1”,否,否则为则为“0”。(2)all(A):若某列所有元素均非零,则函数值为若某列所有元素均非零,则函数值为“1”,否则为,否则为“0”。(3)all(A,dim):A是多维数组,在是多维数组,在dim维上进行维上进行all(A)计算。计算。2. any函数函数(1)any(x):x为向量,若向量中有非零数,则函数值为为向量,若向量中有非零数,则函数值为“1”,否则为,否则为“0”。(2)any(A):若某列有非零数,则函数值为若某列有非零数,则函数值为“1”,否则为,否则为“0”。结果是。结果是一行向量。一行向量。(3)any(A,d

13、im):在在dim维上进行维上进行any(A)计算。计算。3.3.3 测试函数的介绍测试函数的介绍14主要用于测试特殊值的存在或某些条件,返回的是逻辑值主要用于测试特殊值的存在或某些条件,返回的是逻辑值”0”或或“1”。(1)isempty(A) :若若A为空,则返回为空,则返回“1”;(2)ischar(S):若若S是字符串,则返回是字符串,则返回“1”;(3)isreal(A):若若A为实数数组,则返回为实数数组,则返回“1”;(4)isinf(A):返回与返回与A大小一样的数组,只在无穷大量大小一样的数组,只在无穷大量inf处处返回返回“1”;(5)isnan(A):返回与返回与A大小一

14、样的数组大小一样的数组,只在非数值量只在非数值量nan处返回处返回“1”;(6)isstruct(A):若若A是结构体,则返回是结构体,则返回“1”;(7)isfield(A):若若A是某结构体的域,则返回是某结构体的域,则返回“1”;(8) ishandle(A):若若A是图形句柄,则返回是图形句柄,则返回“1”;(9)ishold(A):若当前绘图状态保持为若当前绘图状态保持为on,则返回则返回“1”;15(10)isglobal(A):若若A是全局变量,则返回是全局变量,则返回“1”;(11)isletter(A):若若A是字母,则返回是字母,则返回“1”; (12)isspace(A)

15、:若若A是空格,则返回是空格,则返回“1”;3.4 集合的运算集合的运算对向量或矩阵进行集合交、并、差、对向量或矩阵进行集合交、并、差、异或异或等运算。等运算。163.4.1 两个集合的交集两个集合的交集格式:c=intersect(a,b) % 返回向量返回向量a,b的公共部分,即的公共部分,即c=abC=intersect(A,B,rows) % A,B为相同列数的矩阵,返回元素相为相同列数的矩阵,返回元素相同的行。同的行。c,ia,ib= intersect(a,b) % c为的为的a,b公共元素,公共元素,ia表示公共元表示公共元素在素在a中的位置,中的位置,ib表示公共元素在表示公共

16、元素在b中的位置。中的位置。【例例】 A=1,2,3,4;1,2,4,6;6,7,1,4; B=1,2,3,8;1,1,4,6;6,7,1,4; C=intersect(A,B,rows)C =6 7 1 4 a=1,9,6,20;b=1,2,3,4,6,10,20; c,ia,ib=intersect(a,b)c = 1 6 20ia = 1 3 4ib = 1 5 7173.4.2 两个集合的并集两个集合的并集格式:c=union(a,b) %返回返回a,b的并集,即的并集,即c=a bC=union(A,B,rows) %返回矩阵返回矩阵A,B不同行向量构成的大矩阵,不同行向量构成的大矩

17、阵,其中相同行向量只取其一。其中相同行向量只取其一。c,ia,ib=union() % ia,ib分别表示分别表示c中行向量在原矩阵(向量)中的位置。中行向量在原矩阵(向量)中的位置。 A=1,2,3,4; B=2,4,5,8; C=union(A,B)则结果为: C= 1 2 3 4 5 8 A=1,2,3,4;1,2,4,6; B=1,2,3,8;1,1,4,6; C,IA,IB=union(A,B,rows) C = 1 1 4 6 1 2 3 4 1 2 3 8 1 2 4 6 IA = 1 2 IB = 2 1183.4.3两个集合的差集两个集合的差集格式:c=setdiff(a,b

18、) %返回属于返回属于a但不属于但不属于b的不同元素的不同元素 的集合,即的集合,即c=a-b.C=setdiff(A,B,rows) %返回属于返回属于A但不属于但不属于B的不同行。的不同行。C,I=setdiff(.) %C与前面一致,与前面一致,I表示表示C中元素中元素在在A中的位置。中的位置。【例例】 A=1,7,9,6,20;B=1,2,3,4,6,10,20; C=setdiff(A,B)C = 7 919【例】【例】 A=1,2,3,4;1,2,4,6;6,7,1,4; B=1,2,3,8;1,1,4,6;6,7,1,4; C=setdiff(A,B,rows)C= 1 2 3

19、4 1 2 4 6203.4.4 异或集异或集格式:格式:c=setxor(a,b) %返回集合返回集合a,b交集的非。交集的非。C=setxor(A,B,rows) %返回矩阵返回矩阵A,B交集的非,交集的非,A,B有相同列数。有相同列数。x,ia,ib=setxor(.) %ia,ib表示其中元素分别表示其中元素分别在在a(或(或A),),b(或(或B)中的位置。)中的位置。【例】【例】 A=1,2,3,4; B=2,4,5,8; C=setxor(A,B)C = 1 3 5 821【例例】 A=1,2,3,4;1,2,4,6;6,7,1,4; B=1,2,3,8;1,1,4,6;6,7,

20、1,4; C,IA,IB=setxor(A,B,rows)C = 1 1 4 6 1 2 3 4 1 2 3 8 1 2 4 6IA = 1 2IB= 2 122向量的点积向量的点积格式:C=dot(A,B) %A,B为向量且长度为向量且长度相等,则返回向量相等,则返回向量A与与B的点积。若为矩的点积。若为矩阵,则它们必须有相同的维数。阵,则它们必须有相同的维数。 C=dot(A,B,dim) %在在dim维数中给出维数中给出A与与B的点积。的点积。【例例】A=1,2,3; B=3,4,5;dot(A,B); %计算向量计算向量A,B的点的点积,结果为积,结果为26还可用另一种算法:还可用另一

21、种算法:sum(A.*B).23向量的叉积向量的叉积两向量叉积是一个过相交向量的交点且垂直两向量的平面的向量,在MATLAB中,用函数cross实现。格式:C=cross(A,B) %A,B为向量,则返回为向量,则返回A与与B的叉的叉积,即积,即C=AB、A、B为为3个元素的向量;若为矩阵,则个元素的向量;若为矩阵,则返回一个返回一个3n矩阵,其中列是矩阵,其中列是A与与B对应列的叉积,对应列的叉积,A,B都是都是3n矩阵。矩阵。C=cross(A,B,dim) %在在dim维数中给出向量维数中给出向量A,B的叉积,的叉积,必须有相同的维数,必须有相同的维数,size(A,dim),size(

22、B,dim)必须是必须是3【例【例】A=1,2,3; B=3,4,5; cross(A,B); %计算向量计算向量A,B的叉积,结果为:的叉积,结果为:-2 4 -224向量的混合积向量的混合积混合积由以上两个函数来实现混合积由以上两个函数来实现.【例】【例】 计算向量计算向量a=(1,2,3),b=(4,5,6)和和c=(-3,6,-3)的混的混合积合积a(bc).解:解: a=1,2,3;b=4,5,6;c=-3,6,-3; x=dot(a,cross(b,c)结果显示:结果显示:x = 54注意:先叉积后点积,顺序不可颠倒注意:先叉积后点积,顺序不可颠倒.25向量的长度向量的长度命令命令

23、 sqrt(dot(A,A) % 或或sqrt(sum(A.*A)可求出向量的长度可求出向量的长度.26向量的方向角向量的方向角由定义,向量的方向余弦为,由定义,向量的方向余弦为,,所以:所以: L=sqrt(dot(A,A); %计算向量计算向量A的长度的长度 alpha=acos(A(1)/L); %计算向量计算向量A与与x轴轴的夹角的夹角 beta=acos(A(2)/L); %计算向量计算向量A与与y轴轴的夹角的夹角 gamma=acos(A(3)/L); %计算向量计算向量A与与z轴的夹角轴的夹角27向量的夹角向量的夹角向量向量A,B间的夹角,由可得,所以:间的夹角,由可得,所以:

24、L1=sqrt(dot(A,A); %计算向量计算向量A的长的长度度 L2=sqrt(dot(B,B); %计算向量计算向量B的长的长度度 c=dot(A,B); %计算向量计算向量A,B的点积的点积 alpha=acos(c /L1/L2) %计算向量计算向量A,B间夹角间夹角28点与点之间的距离点与点之间的距离由两点间距离公式,所以:由两点间距离公式,所以:s= A-B;L=sqrt(dot(s,s) %计算两点计算两点A,B间的距离间的距离293031 3.4.5 集合元素的检测检测一个集合中的元素是否在另一个集合中(1)C=ismember(A,S):集合A是向量或矩阵,C与A大小相同

25、,且只包含0、1,若A的元素在S中,则在A的对应位置处,C的取值为1,否则为0。(2) C=ismember(A,S,rows):矩阵A和S的列数相同,C是与A行数相同的列向量,若A的行在S中,则C的对应的行处的值为1,否则为0。例题3.4.3显然32 3.4.6 矩阵元素的合并矩阵元素的合并利用函数利用函数unique去掉集合中重复的元素:去掉集合中重复的元素:(1)B=unique(A):若若A是行向量,则是行向量,则B也是也是行向量;若行向量;若A是列向量或矩阵,则是列向量或矩阵,则B是列向量。是列向量。(2) B=unique(A,rows):以行为元素,以行为元素,返回的矩阵返回的矩阵B中没有相同的行;中没有相同的行;(3)B,I,J=unique(A):返回值返回值I表示表示B中的中的元素原来在元素原来在A中的位置;中的位置;J表示表示A中的元素在中的元素在B中的位置,即中的位置,即B=A(I)、A=B(J)例题例题3.4.4显然显然33

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号