《《数组的运算基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数组的运算基础》PPT课件.ppt(34页珍藏版)》请在金锄头文库上搜索。
1、第第2 2章章 数组的运算基础数组的运算基础几点说明:几点说明:vMATLABMATLAB运算的基本单元是实数或复数元素组成的运算的基本单元是实数或复数元素组成的 矩阵,矩阵,MATLABMATLAB的大部分运算或命令都是在矩阵运的大部分运算或命令都是在矩阵运 算意义下执行的。算意义下执行的。v变量与常量:变量与常量:1*11*1矩阵矩阵 一维数组一维数组( (行向量行向量) ):1*n1*n矩阵矩阵 N N维列向量:维列向量:n*1n*1矩阵矩阵v在在MATLABMATLAB中,不需对矩阵的维数和类型进行说明,中,不需对矩阵的维数和类型进行说明, MATLABMATLAB会根据用户所输入的内
2、容自动进行配置。会根据用户所输入的内容自动进行配置。基本运算单元矩阵基本运算单元矩阵标量标量 要用要用MATLABMATLAB做矩阵运算,第一步是矩阵输入(定义),做矩阵运算,第一步是矩阵输入(定义),矩阵输入须遵循以下规则:矩阵输入须遵循以下规则:必须用中括号必须用中括号把所有矩阵元素括起来。把所有矩阵元素括起来。同一行的不同元素之间数据元素用空格或逗号同一行的不同元素之间数据元素用空格或逗号( ( ,) )间隔。间隔。用分号用分号( ; )( ; )指定一行结束。指定一行结束。也可分成几行输入,用回车代替分号。也可分成几行输入,用回车代替分号。数据元素可是数值、变量、表达式或函数,系统将自
3、动计数据元素可是数值、变量、表达式或函数,系统将自动计算。算。一、矩阵的构造一、矩阵的构造方法一方法一 直接输入直接输入例例A=1,2,3,4;5 6 7 8;9 10 11 12;13 14 15 16A=1,2,3,4;5 6 7 8;9 10 11 12;13 14 15 16注意逗号、空格注意逗号、空格和分号的用法和分号的用法B=1,sqrt(25),9,13B=1,sqrt(25),9,132,6,10,7*22,6,10,7*23+sin(pi),7,11,153+sin(pi),7,11,154 abs(-8) 12 164 abs(-8) 12 16例例分成几行输入,分成几行输
4、入,用回车代替分号用回车代替分号例例a=1; b=2; c=3;a=1; b=2; c=3;x=5 b c; a*b x=5 b c; a*b a+ca+c c/bc/b 元素是表达式元素是表达式格式格式1 1x=firstx=first:lastlast 或x=firstx=first:lastlast 创建从创建从firstfirst开始,加开始,加1 1计数,到计数,到lastlast结束的行向量结束的行向量方法二方法二 利用线性等间距生成向量矩阵利用线性等间距生成向量矩阵X=X= 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10ansans= = 1
5、2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 X=1:10 % X=1:10 %增量为增量为1 1例例1:10 1:10 例例赋给赋给MATLABMATLAB的的永久变量永久变量ansansX=1,2,3,4,5,6,7,8,9,10X=1,2,3,4,5,6,7,8,9,10格式格式2 2x=firstx=first:incrementincrement:lastlast 或 x=firstx=first:incrementincrement:lastlast 创建从创建从firstfirst开始,加开始,加incrementincrement计数,到计数,
6、到lastlast结束的行向量结束的行向量ansans = = 100 93 86 79 72 65 58 100 93 86 79 72 65 58 5151当当increment0increment0为不大于为不大于lastlast的的最小数,当最小数,当increment0increment0为不小为不小于于lastlast的最大数的最大数ansans = = 0 0.7854 1.5708 2.3562 3.1416 0 0.7854 1.5708 2.3562 3.1416例例 100:-7:50 % 100:-7:50 %增量为增量为-7-7例例 0:pi/4:pi % 0:pi/
7、4:pi %增量为增量为pi/4pi/4例例 a=linspace(2,9,6) a=linspace(2,9,6)a =a = 2.0000 3.4000 4.8000 6.2000 7.6000 9.0000 2.0000 3.4000 4.8000 6.2000 7.6000 9.0000方法三方法三 利用函数生成利用函数生成格式格式1 1 linspace(alinspace(a,b b,n n) 创建从创建从a a开始,到开始,到b b结束,有结束,有n n个元素的线性等分行向量,个元素的线性等分行向量,n n缺缺省值为省值为100100。例例 a=logspace(-1,-3,3)
8、 a=logspace(-1,-3,3)a =a = 0.1000 0.0100 0.0010 0.1000 0.0100 0.0010方法三方法三 利用函数生成利用函数生成格式格式2 2 logspace(alogspace(a,b b,n n) 创建从创建从1010a a开始,到开始,到1010b b结束,有结束,有n n个元素的个元素的线性线性等分行向量,等分行向量,n n缺省值为缺省值为5050。注意:将注意:将a到到b平均分成平均分成n等等分,设分点是分,设分点是x1, , ,xn n, ,-1-1到到-3-3的的3 3等分点等分点是是-1-1、-2-2、-3-3方法四方法四 利用内
9、部函数产生利用内部函数产生函数函数功能功能eye(m,neye(m,n) )产生产生m*nm*n维单位矩阵维单位矩阵zeros(m,nzeros(m,n) ) 产生全部元素为产生全部元素为0 0的的m*nm*n矩阵矩阵ones(m,nones(m,n) )产生全部元素为产生全部元素为1 1的的m*nm*n矩阵矩阵产生空矩阵产生空矩阵magic(nmagic(n) )产生产生n n阶方阵,各行各列及对角线元素和相等阶方阵,各行各列及对角线元素和相等rand(m,nrand(m,n) )元素服从元素服从0 0到到1 1之间均匀分布的随机之间均匀分布的随机m*nm*n矩阵矩阵diag(adiag(a
10、) )以向量以向量a a作为对角线元素生成对角矩阵作为对角线元素生成对角矩阵方法五方法五 利用利用M M文件产生文件产生三、多维矩阵(数组)的创建三、多维矩阵(数组)的创建 以三维矩阵为例。三维矩阵由行、列和页组成,第三维称以三维矩阵为例。三维矩阵由行、列和页组成,第三维称为页,每一页包含一个由行和列组成的二维数组。为页,每一页包含一个由行和列组成的二维数组。例例 要求输入一个要求输入一个2 2行、行、2 2列、列、3 3页的三维矩阵,其第页的三维矩阵,其第1 1、2 2、3 3页元素分别为:页元素分别为: a(:,:,1)=1 1;3 3;2 0; a(:,:,1)=1 1;3 3;2 0;
11、 a(:,:,3)=4; a(:,:,3)=4; 如未对某元素、某行或如未对某元素、某行或某页赋值,其值为某页赋值,其值为0 0四、生成大矩阵四、生成大矩阵在组成较大矩阵时,可以将小矩阵作为它的元素。在组成较大矩阵时,可以将小矩阵作为它的元素。左右拼装左右拼装 A=1 2 3;4 5 6; A=1 2 3;4 5 6; B=7;8; B=7;8; C=A B C=A B例例要求矩阵的要求矩阵的行数相同行数相同上下拼装上下拼装要求矩阵的要求矩阵的列数相同列数相同例例 A=1 2 3;4 5 6; A=1 2 3;4 5 6; D=7 8 9; D=7 8 9; E=A;D E=A;D第二节第二节
12、 矩阵的操作矩阵的操作一、矩阵元素的操作一、矩阵元素的操作A(m,nA(m,n) ):第:第m m行,第行,第n n列元素列元素 A(2,3)ans = 6A(mA(m,:),:):第:第m m行元素(冒行元素(冒号表示全部)号表示全部) A(2,:)ans = 4 5 6A(:,nA(:,n) ):第:第n n列元素列元素 A(:,3)ans = 3 6 9A(m1:m2,n1:n2)A(m1:m2,n1:n2):第:第m1m1行到第行到第m2m2行和第行和第n1n1列到第列到第n2n2列的所有列的所有元素。元素。 A(1:2,2:3)ans = 2 3 5 6 A(:)A(:):列向量。元
13、素按矩阵的:列向量。元素按矩阵的列进行排列。列进行排列。 A(:)ans = 1 4 7 2 5 8 3 6 9矩矩阵阵扩扩展展:如如果果在在原原矩矩阵阵中中一一个个不不存存在在的的位位置置上上赋赋值值,则则该该矩矩阵阵会会自自动动扩扩展展行行列列数数,其其他他没没有有赋赋值值的的元元素素默默认认为为零零(变变维结构)。维结构)。 A(4,5)=10A = 1 2 3 0 0 4 5 6 0 0 7 8 9 0 0 0 0 0 0 10删除子块删除子块:如果将矩阵的子块赋值为空矩阵:如果将矩阵的子块赋值为空矩阵,则相当,则相当于消除了相应的矩阵子块。于消除了相应的矩阵子块。例例A(4:5,:)
14、=A(4:5,:)=A =A = 1 2 3 0 0 1 2 3 0 0 4 5 6 0 0 4 5 6 0 0 7 8 9 1 0 7 8 9 1 0例例B(:,3:5)=B(:,3:5)=B =B = 1 2 6 1 2 6 7 8 12 7 8 12 例例A=1 2 3;4 5 6;D=7 8 9;A=1 2 3;4 5 6;D=7 8 9;A =A = 1 10 3 1 10 3 4 5 6 4 5 6 A(1,2)=10 A(1,2)=10 A(1,:)=D A(1,:)=DA =A = 7 8 9 7 8 9 4 5 6 4 5 6 A(1:2,1:2)=1 2;3 4 A(1:2
15、,1:2)=1 2;3 4A =A = 1 2 3 1 2 3 3 4 6 3 4 6 A=5 6;7 8 A=5 6;7 8A =A = 5 6 5 6 7 8 7 8为矩阵元素为矩阵元素赋值赋值用向量为矩用向量为矩阵某一行元阵某一行元素赋值素赋值为矩阵的某一块元素赋值为矩阵的某一块元素赋值为矩阵元素赋值的同为矩阵元素赋值的同时,改变矩阵的维数时,改变矩阵的维数(结构)(结构) B=A(3:-1:2,1:3)B = 7 8 9 4 5 6 C=A(end:-1:1,:)C = 7 8 9 4 5 6 1 2 3 D=A C(:,1 3)D = 1 2 3 7 9 4 5 6 4 6 7 8
16、9 1 3find()find()函数:函数:查找矩阵满足特定条件元素下标查找矩阵满足特定条件元素下标 p= p=find(Xfind(X) )p =p = 2 3 5 6 7 2 3 5 6 7二、矩阵元素的处理方法二、矩阵元素的处理方法返回向量返回向量X中非零元素中非零元素的下标的下标 m,n=find(A3) m,n=find(A3)m =m = 2 2 2 2 1 1 2 2n =n = 1 1 2 2 3 3 3 3例例 X=0 1 -2 0 -3 7 9; X=0 1 -2 0 -3 7 9;例例 A=1 2 9;4 5 6; A=1 2 9;4 5 6;返回矩阵返回矩阵A中大于中
17、大于3的元素的下标,的元素的下标,m行坐标、行坐标、n列坐标列坐标思考:思考: find(A3)转置:操作符转置:操作符 A Aans =ans = 1 4 1 4 2 5 2 5 3 6 3 6 B Bansans = = 1.0000-2.0000i 4.0000+i 1.0000-2.0000i 4.0000+i 3.0000+4.0000i 5.0000 3.0000+4.0000i 5.0000 5.0000 6.0000 5.0000 6.0000例例例例复数矩阵转置先转复数矩阵转置先转置,再求共轭复数置,再求共轭复数 m,nm,n=size(Asize(A) ):返回矩阵的行列数
18、:返回矩阵的行列数m m与与n n。length(Alength(A)=)=max(size(Amax(size(A):返回行数或列数的最大值。:返回行数或列数的最大值。m,n=m,n=size(Asize(A) )m =m = 2 2n =n = 3 3length(Alength(A) )ansans = = 3 3max(size(Amax(size(A)ansans = = 3 3m=size(A,1)m=size(A,1)m =m = 2 2n=size(A,2)n=size(A,2)n =n = 3 31 1表示第表示第1 1维维例:例:问题:size(A,3)size(A,3)?
19、矩阵大小查询矩阵大小查询 numel(Anumel(A) ):返回矩阵的元:返回矩阵的元 素个数。素个数。 rank(Arank(A) ):求矩阵的秩:求矩阵的秩m=m=numel(Anumel(A) )m =m = 6 6rank(Arank(A) )ansans = = 2 2 flipud(A): flipud(A): 矩阵作上下翻转矩阵作上下翻转 fliplr(Afliplr(A) ):矩阵作左右翻转矩阵作左右翻转 rot90(A)rot90(A): 逆时针旋转逆时针旋转9090 flipud(A) flipud(A)ans =ans = 4 5 6 4 5 6 1 2 3 1 2 3
20、 fliplr(A) fliplr(A)ans =ans = 3 2 1 3 2 1 6 5 4 6 5 4 rot90(A) rot90(A)ans =ans = 3 6 3 6 2 5 2 5 1 4 1 4例例 diag(A)ans = 1 5 9 tril(A)ans = 1 0 0 4 5 0 7 8 9 triu(A)ans = 1 2 3 0 5 6 0 0 9 diag(Adiag(A) ):提取矩阵提取矩阵A A的对角元素,返回列向量的对角元素,返回列向量 tril(A)tril(A):提取提取A A的下三角矩阵的下三角矩阵 triu(Atriu(A) ):提取提取A A的上
21、三角矩阵的上三角矩阵 diag(Vdiag(V) ):以列向量以列向量V V作对角元素创建对角矩阵作对角元素创建对角矩阵 diag(V)ans = 2 0 0 0 0 5 0 0 0 0 8 0 0 0 0 7V=2;5;8;7V=2;5;8;7函数函数 inv() inv() 求求矩阵矩阵A A的逆矩阵的逆矩阵例例 求下列方程组的解求下列方程组的解 算法:算法: A=1 2 A=1 2;3 43 4; b=5;11; b=5;11; x= x=inv(Ainv(A)*b)*bx=x= 1 1 2 2函数函数 eig(Aeig(A) ) 求矩阵求矩阵A A的特征值的特征值d =d = 3.73
22、21 3.7321 0.2679 0.2679 1.0000 1.0000 V,D= V,D=eig(Geig(G) )例例 G=1 2 0;2 5 -1;4 10 - G=1 2 0;2 5 -1;4 10 -11 d= d=eig(Geig(G) )V =V = -0.2440 -0.9107 0.4472 -0.2440 -0.9107 0.4472 -0.3333 0.3333 0.0000 -0.3333 0.3333 0.0000 -0.9107 -0.2440 0.8944 -0.9107 -0.2440 0.8944D =D = 3.7321 0 0 3.7321 0 0 0
23、0.2679 0 0 0.2679 0 0 0 1.0000 0 0 1.0000 对应的对应的特征值特征值函数:函数:poly(Apoly(A) )。求矩阵。求矩阵A A的特征多项式的特征多项式 G=1 2 0;2 5 -1;4 10 -1 G=1 2 0;2 5 -1;4 10 -1 poly(G) poly(G)ans =ans = 1.0000 -5.0000 5.0000 -1.0000 1.0000 -5.0000 5.0000 -1.0000例例函数函数 det(Adet(A) ) 求矩阵求矩阵A A的行列式的值。的行列式的值。例例 G=1 2 0;2 5 -1;4 10 -1G
24、=1 2 0;2 5 -1;4 10 -1 det(G) det(G)ans =ans = 1.0000 1.0000其他常用的矩阵函数其他常用的矩阵函数函数函数功能功能expm(Aexpm(A) )计算矩阵的幂级数计算矩阵的幂级数logm(Alogm(A) )求矩阵的对数求矩阵的对数orth(Aorth(A) )求正交化矩阵求正交化矩阵 svdsvd(A A)奇异值分解奇异值分解trace(Atrace(A) )矩阵的对角元素之和矩阵的对角元素之和norm(Anorm(A) )矩阵和向量的范数矩阵和向量的范数Lu(ALu(A) )用高斯消元法所得的系数矩阵用高斯消元法所得的系数矩阵qr(Aq
25、r(A) )正交三角矩阵分解正交三角矩阵分解应用举例应用举例例例1 1:已知:已知 A=1 2 3;-2 0 0;1 0 1;-1 2 -3; A=1 2 3;-2 0 0;1 0 1;-1 2 -3; B=-1,3;-2 2;2 1; B=-1,3;-2 2;2 1; C=A*B C=A*B 求:求:C CABAB。C =C = 1 10 1 10 2 -6 2 -6 1 4 1 4 -9 -2 -9 -2假定矩阵假定矩阵A A和和B B满足关系式满足关系式ABABA A2B2B,求矩阵,求矩阵B B。例例2 2:已知:已知算法:由算法:由AB=A+2BAB=A+2B可得可得(A-2E)B=
26、A(A-2E)B=A,故,故B B(A-2E)-1A(A-2E)-1A A=4 2 3;1 1 0;-1 2 3; A=4 2 3;1 1 0;-1 2 3; B=inv(A-2*eye(3)*A B=inv(A-2*eye(3)*AB =B = 3.0000 -8.0000 -6.0000 3.0000 -8.0000 -6.0000 2.0000 -9.0000 -6.0000 2.0000 -9.0000 -6.0000 -2.0000 12.0000 9.0000 -2.0000 12.0000 9.0000第第2章习题章习题q习题习题1 1:已知矩阵:已知矩阵A A和和B B求求(1
27、)2A(1)2AB B(2)4A2(2)4A23B23B2(3)AB(3)AB(4)BA(4)BA(5)AB(5)ABBABAq习题习题2 2:设三阶矩阵:设三阶矩阵A A、B B,满足,满足 A A1 1BABA6A6ABABA 其中其中求矩阵求矩阵B B。q习题习题3 3:设:设(2E(2EC C-1-1B)AB)AT T=C=C-1-1,其中其中E E是是4 4阶单位矩阶单位矩阵,阵,A AT T是是4 4阶矩阵阶矩阵A A的转置。的转置。求矩阵求矩阵A Aq习题习题4 4:设二阶矩阵:设二阶矩阵A A,B B,X X,满足,满足 X X2A2AB BX X其中其中求矩阵求矩阵X X。q习题习题5 5:求解线性方程组:求解线性方程组