第二讲矩阵和数组的操作PPT讲稿.ppt

上传人:石*** 文档编号:44695492 上传时间:2022-09-22 格式:PPT 页数:56 大小:2.90MB
返回 下载 相关 举报
第二讲矩阵和数组的操作PPT讲稿.ppt_第1页
第1页 / 共56页
第二讲矩阵和数组的操作PPT讲稿.ppt_第2页
第2页 / 共56页
点击查看更多>>
资源描述

《第二讲矩阵和数组的操作PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第二讲矩阵和数组的操作PPT讲稿.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第二讲矩阵和数组的操作第1页,共56页,编辑于2022年,星期二一一 矩阵的建立矩阵的建立1.1.直接输入法直接输入法2.2.利用利用M文件建立矩阵文件建立矩阵3.3.利用矩阵编辑器利用矩阵编辑器Matrix Editor完成输入和完成输入和修改修改4.4.利用利用MATLAB函数建立矩阵函数建立矩阵5.5.建立大矩阵建立大矩阵第2页,共56页,编辑于2022年,星期二 将将矩矩阵阵的的元元素素用用方方括括号号括括起起来来,按按矩矩阵阵行行的的顺顺序序输输入入各各元元素素,同同一一行行的的各各元元素素之之间间用用空空格格或或逗逗号号分分隔隔,不不同同行行的元素之间用的元素之间用分号分号分隔。分

2、隔。A=16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1A=16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1第3页,共56页,编辑于2022年,星期二 对对于于比比较较大大且且比比较较复复杂杂的的矩矩阵阵,可可以以为为它它专专门门建建立立一个一个MM文件。文件。例例:利用利用MM文件建立文件建立A A矩阵。矩阵。(1)(1)启启动动有有关关编编辑辑程程序序或或MATLABMATLAB文文本本编编辑辑器器,并并输输入待建矩阵入待建矩阵.(2)(2)把输入的内容存盘把输入的内容存盘(设文件名为设文件名为mymatrix.m)mymatrix.

3、m)。(3)(3)运运行行该该M M文文件件,就就会会自自动动建建立立一一个个名名为为A A的的矩矩阵,可供以后使用。阵,可供以后使用。第4页,共56页,编辑于2022年,星期二A=.16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0(2)(2)存为存为:mymatrix.m:mymatrix.m(3)(3)运行运行:mymatrix:mymatrix(1)MATLAB(1)MATLAB程序编辑器中输入程序编辑器中输入:(一一)利用利用MATLABMATLAB程序编辑器程序编辑器:第5页,共56页,编辑于

4、2022年,星期二(1)编辑一个文本文件编辑一个文本文件:16.0 3.0 2.0 13.05.0 10.0 11.0 8.09.0 6.0 7.0 12.04.0 15.0 14.0 1.0(2)装入装入 该文本文件:该文本文件:load mymatrix.dat 或者:或者:load mymatrix.txt(3)创建一个变量名为创建一个变量名为mymatrix的矩阵的矩阵(二二)利用其它文本编辑器利用其它文本编辑器:(文本或二进制格式)(文本或二进制格式)将以文本或二进制格式存储的数据读入将以文本或二进制格式存储的数据读入 MATLAB 的另一种方式是用的另一种方式是用 Import W

5、izard.FileImport Data第6页,共56页,编辑于2022年,星期二 先在命令窗口输入:先在命令窗口输入:A=1 A=1在在WorkspaceWorkspace窗窗口口,双双击击该该变变量量,打打开开矩矩阵阵编编辑辑器器,进行输入和修改。进行输入和修改。第7页,共56页,编辑于2022年,星期二几几个个产产生生特特殊殊矩矩阵阵的的函函数数:zeros、ones、eye、rand、randn。这这几几个个函函数数的的调调用用格格式式相相似似,下下面面以以产产生生零零矩矩阵阵的的zeros函数为例进行说明。其调用格式是:函数为例进行说明。其调用格式是:zeros(m)产生产生mm零

6、矩阵零矩阵 zeros(m,n)产生产生mn零矩阵。零矩阵。zeros(size(A)产生与矩阵产生与矩阵A同样大小的零矩阵同样大小的零矩阵相相关关的的函函数数有有:length(A)给给出出行行数数和和列列数数中中的的较较大大者者,即即length(A)=max(size(A);ndims(A)给给出出A的的维维数,数,size(A)多维矩阵各维长度多维矩阵各维长度第8页,共56页,编辑于2022年,星期二Z=zeros(2,4)Z=0 0 0 0 0 0 0 0R=randn(4,4)%均值为均值为0 方方差为差为1的随机矩阵的随机矩阵R=1.0668 0.2944 -0.6918 -1.

7、44100.0593 -1.3362 0.8580 0.5711-0.0956 0.7143 1.2540 -0.3999-0.8323 1.6236 -1.5937 0.6900F=5*ones(3,3)F=5 5 5 5 5 5 5 5 5N=fix(10*rand(1,10)N=4 9 4 4 8 5 2 6 8 0第9页,共56页,编辑于2022年,星期二此外,常用的函数还有此外,常用的函数还有reshape(A,m,n),它在矩阵,它在矩阵总元素保持不变的前提下,将矩阵总元素保持不变的前提下,将矩阵A重新排成重新排成mn的二维矩阵的二维矩阵,其元素是以列的方式从其元素是以列的方式从A

8、中获得,中获得,A必必须包含须包含mn个元素个元素。第10页,共56页,编辑于2022年,星期二A=16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1reshape(A,2,8)ans=16 9 3 6 2 7 13 12 5 4 10 15 11 14 8 1第11页,共56页,编辑于2022年,星期二 大矩阵可由方括号中的小矩阵建立起来。大矩阵可由方括号中的小矩阵建立起来。例如例如:A=1 2 3;4 5 6;7 8 9;C=A,eye(size(A);ones(size(A),AC=1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1

9、1 1 2 3 1 1 1 4 5 6 1 1 1 7 8 9第12页,共56页,编辑于2022年,星期二6 6 冒号表达式冒号表达式冒号表达式的一般格式:冒号表达式的一般格式:e1:e2:e3还还可可以以用用linspace函函数数产产生生一一个个线线性性间间隔隔的的行行向向量量:linspace(a,b,n):a,b,n:初值,终值,点数:初值,终值,点数linspace(a,b,n)与与 a:(b-a)/(n-1):b 等价。等价。linspace用用于于产产生生一一个个等等差差数数列列,括括号号里里三三项项分分别别表表示起始值、终止值和元素数目;示起始值、终止值和元素数目;logspa

10、ce用用于于产产生生一一个个对对数数间间隔隔行行向向量量(等等比比数数列列),b=logspace(0,4,5),表表示示产产生生一一个个起起始始值值为为100,终终止止值为值为104,元素数目为元素数目为5的等比数列的等比数列.第13页,共56页,编辑于2022年,星期二X=10:20X=0:0.1:0.5X=linspace(0,pi,11)或或X=linspace(0,1,11)*piX=Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.

11、8274 3.1416第14页,共56页,编辑于2022年,星期二save mydata A X load mydata 系统自动沿设定好的路径以系统自动沿设定好的路径以”.mat.mat”格式存储文件格式存储文件 savefile=mydata.mat;savefile=mydata.mat;save(savefile,A,X)save(savefile,A,X)Load(savefile)Load(savefile)如果想存储在指定路径:如果想存储在指定路径:save D:homeworkmydata A X 或者:或者:savefile=D:homeworkmydata.mat;save

12、file=D:homeworkmydata.mat;第15页,共56页,编辑于2022年,星期二MATLAB允允许许用用户户对对一一个个矩矩阵阵的的单单个个元元素素进进行行赋赋值值和和操操作作。例如例如 A(3,2)=200也也可可以以采采用用矩矩阵阵元元素素的的序序号号来来引引用用矩矩阵阵元元素素。矩矩阵阵元元素素按按列列编号,先第一列,再第二列,依次类推。编号,先第一列,再第二列,依次类推。以以 mn 矩阵矩阵A为例,矩阵元素为例,矩阵元素 A(i,j)的序号为:的序号为:(j-1)*m+i。其其相相互互转转换换关关系系也也可可利利用用sub2ind和和ind2sub函函数数求求得得(分分

13、别别为为:把把矩矩阵阵下下标标变变为为元元素素序序号号和和把把元元素素序序号号变变为矩阵下标)。为矩阵下标)。1.1.矩阵元素矩阵元素第16页,共56页,编辑于2022年,星期二A=17 24 1 8;2 22 7 14;4 6 13 20A=17 24 1 8 2 22 7 14 4 6 13 20%ind=sub2ind(size(A),2,2)(ind=5)ind=sub2ind(size(A),2,3)(ind=8)i,j=ind2sub(size(A),5)i=2j=2第17页,共56页,编辑于2022年,星期二A(:,j)表表示示取取A矩矩阵阵的的第第j j列列全全部部元元素素;A

14、(i,:)表表示示A矩矩阵阵第第i行行的的全全部部元元素素;A(i,j)表表示示取取A矩矩阵阵第第i行行、第第j列列的的元元素。素。A(i:i+m,:)表表 示示 取取A矩矩 阵阵第第i i+m行行 的的 全全 部部 元元 素素;A(:,k:k+m)表表示示取取A A矩矩阵阵第第kk+m列列的的全全部部元元素素,A(i:i+m,k:k+m)表表示示取取A矩矩阵阵第第ii+m行行内内,并并在在第第kk+m列列中的所有元素。中的所有元素。(1)(1)利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵第18页,共56页,编辑于2022年,星期二 在在MATLAB中中,定定义义 为为空空矩矩阵阵。给给变

15、变量量X赋空矩阵的语句为赋空矩阵的语句为X=。注注意意:X=与与clear X不不同同,clear是是将将X从从工工作作空空间间中中删删除除,而而空空矩矩阵阵则则存存在在于于工工作作空空间,只是维数为间,只是维数为0。将将某某些些元元素素从从矩矩阵阵中中删删除除,采采用用将将其其置置为为空空矩矩阵阵的方法就是一种有效的方法。的方法就是一种有效的方法。第19页,共56页,编辑于2022年,星期二X=16 2 135 11 89 7 124 14 1X=16 9 2 7 13 12 1第20页,共56页,编辑于2022年,星期二A=4:6A=A-3;A;A+3A=1 2 3 4 5 6 7 8 9

16、B=A(1:2,2:3)B=2 3 5 6A(:,2)=A=1 3 4 6 7 9A(2,2)=0A=1 3 4 0 7 9A(3)ans=7A(2:4)ans=4 7 3第21页,共56页,编辑于2022年,星期二A=1 2 3 4 5 6 7 8 9sum(A)ans=12 15 18Aans=1 4 7 2 5 8 3 6 9B=diag(A)%提取或提取或建立对角阵建立对角阵B=1 5 9C=diag(B)C=1 0 0 0 5 0 0 0 9第22页,共56页,编辑于2022年,星期二A=1 2 3 4 5 6 7 8 9B=A4B=0 0 0 0 1 1 1 1 1r,c=find

17、(A4)r=3 2 3 2 3c=1 2 2 3 3第23页,共56页,编辑于2022年,星期二A=rand(3,4)A1=A(2:3,1,3,4)A2=A(1,3,2,4)L=A(2,:)tril(A)%主对角线及以下元素取矩阵主对角线及以下元素取矩阵A的元素,其余为的元素,其余为0tril(A,K)triu(A)%主对角线及以上元素取矩阵主对角线及以上元素取矩阵A的元素,其余为的元素,其余为0triu(A,K)rot90(A)%逆时针旋转逆时针旋转90度度rot90(A,K)L=flipud(A)%将矩阵将矩阵A上下翻转上下翻转 fliplr(A)%将矩阵将矩阵A左右翻转左右翻转resha

18、pe(A,m,n)(3)(3)矩阵的结构变换矩阵的结构变换Practice:A=magic(4)B1=rot90(A),B2=rot90(A,2),B3=tril(A,2),B4=triu(A,-1),BT=A,第25页,共56页,编辑于2022年,星期二(1)(1)对二维矩阵进行扩充得到三维矩阵:对二维矩阵进行扩充得到三维矩阵:以三维矩阵为例,常用的方法有以三维矩阵为例,常用的方法有4 4种:种:a=1,2;3,4a=1 2 3 4 a(:,:,2)=5,6;7,8a(:,:,1)=1 2 3 4a(:,:,2)=5 6 7 8第26页,共56页,编辑于2022年,星期二(2)(2)若干个同

19、样大小的二维矩阵进行组合得到三维矩阵若干个同样大小的二维矩阵进行组合得到三维矩阵:b(:,:,1)=1 2;3 4b=1 2 3 4 b(:,:,2)=5 6;7 8b(:,:,1)=1 2 3 4b(:,:,2)=5 6 7 8第27页,共56页,编辑于2022年,星期二(3)除除产产生生单单位位矩矩阵阵的的eye函函数数外外,前前面面介介绍绍的的建建立立矩阵的函数都可以延伸到三维矩阵矩阵的函数都可以延伸到三维矩阵:C=randn(4,3,2)c=1 2c=1 2C=repmat(c,3 2 2)C(:,:,1)=1 2 1 2 1 2 1 2 1 2 1 2C(:,:,2)=1 2 1 2

20、 1 2 1 2 1 2 1 2repmat:复制小矩阵生成多维数组复制小矩阵生成多维数组第28页,共56页,编辑于2022年,星期二(4)(4)用用catcat函数构建多维矩阵函数构建多维矩阵。cat(dim,A1,A2,)cat函函数数把把大大小小相相同同的的若若干干矩矩阵阵A1,A2,,按按照照dim指指定的维数组合成新的矩阵定的维数组合成新的矩阵A1=1 2;3 4,A2=5 6;7 8C1=cat(1,A1,A2)C2=cat(2,A1,A2)C3=cat(3,A1,A2)第29页,共56页,编辑于2022年,星期二(一)算术运算(二)关系运算(三)逻辑运算第30页,共56页,编辑于

21、2022年,星期二1.1.基本算术运算基本算术运算 MATLABMATLAB的的基基本本算算术术运运算算有有:(加加)、(减减)、*(*(乘乘)、/(/(右除右除)、(左除左除)、(乘方乘方)。注注意意:运运算算是是在在矩矩阵阵意意义义下下进进行行的的,单单个个数数据据的的算算术运算只是一种特例。术运算只是一种特例。2.2.点运算点运算 点点运运算算符符有有.*.*、././、.和和.。两两矩矩阵阵进进行行点点运运算算是是指指它它们们的的对对应应元元素素进进行行相相关关运运算算,要要求求两两矩矩阵阵的的维维数数相同。相同。3MATLABMATLAB常用数学函数常用数学函数第31页,共56页,编

22、辑于2022年,星期二(1 1)矩阵加、减()矩阵加、减(,)运算)运算 相加、减的两矩阵必须有相加、减的两矩阵必须有相同的行和列相同的行和列,两矩,两矩阵对应元素相加减。阵对应元素相加减。允许参与运算的两矩阵之一是标量。标量与矩阵允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。的所有元素分别进行加减操作。(2 2)矩阵乘()矩阵乘()运算运算 A A矩阵的列数必须等于矩阵的列数必须等于B B矩阵的行数矩阵的行数 标量可与任何矩阵相乘。标量可与任何矩阵相乘。第32页,共56页,编辑于2022年,星期二(3 3)矩阵除()矩阵除(,/)运算运算 矩阵除的运算在线性代数中没有

23、,有矩阵逆的运矩阵除的运算在线性代数中没有,有矩阵逆的运算,在算,在matlab中有两种矩阵除运算:中有两种矩阵除运算:(左除左除):AB表示表示A左除左除B;/(右除右除):A/B表示表示B右右除除A设设A是可是可逆矩阵的运算,逆矩阵的运算,AX=B的解是的解是A左除左除B,即,即X=AB;XA=B的解是的解是A右除右除B,即,即X=B/A第33页,共56页,编辑于2022年,星期二A=1 2;3 4;5 6;B=5 6;7 8;9 10;C=AB D=A/B E=B A F=B/A对于对于AX=b的线性方程组,有两种解法:一种是利用矩的线性方程组,有两种解法:一种是利用矩阵求逆,即阵求逆,

24、即X=inv(A)*b;另一种是用左除,即另一种是用左除,即X=A b。除法的速度快。除法的速度快。第34页,共56页,编辑于2022年,星期二A=rand(5)b=ones(5,1)x1=inv(A)*b x2=Ab第35页,共56页,编辑于2022年,星期二(4 4)矩阵乘方()矩阵乘方()运算运算 A p A 自乘自乘p 次幂次幂 设设A为方阵,为方阵,p为正整数,则为正整数,则A p 表示表示 A 自乘自乘p 次;次;若若A为方阵且非奇异,为方阵且非奇异,p为正整数,为正整数,A(-p)表示表示 A的逆自乘的逆自乘p 次。次。对于对于p的其它值的其它值,计算将涉及特征值和特征向量,如计

25、算将涉及特征值和特征向量,如A,p 都是矩阵,都是矩阵,A p 则无意义。则无意义。第36页,共56页,编辑于2022年,星期二A=1,2,3;2,3,1;3,2,1B=A2C=A0.3(5).(5).矩阵的其它运算矩阵的其它运算 ninv 矩阵求逆矩阵求逆ndet 行列式的值行列式的值neig 矩阵的特征值矩阵的特征值ndiag 对角矩阵对角矩阵 n 矩阵转置矩阵转置nsqrt 矩阵开方矩阵开方第37页,共56页,编辑于2022年,星期二The first row contains the heart rate,weight,and exercise hours for patient 1,

26、the second row contains the data for patient 2,and so on.The mean and standard deviation of each column:mu=mean(D),sigma=std(D)mu=75.8000 161.8000 3.4800sigma=5.6303 25.4990 2.2107 D=72 134 3.2;.81 201 3.5;.69 156 7.1;.82 148 2.4;.75 170 1.2第38页,共56页,编辑于2022年,星期二a=1 2 3;4 5 6;7 8 9b=2 4 6;1 3 5;7 9

27、10a.*bans=2 8 18 4 15 30 49 72 90 a*b 对比一下上面两式得到的结果。第39页,共56页,编辑于2022年,星期二a.b=b./a%给出给出a,b对应元素间的商对应元素间的商.%都是都是a的元素被的元素被b的对应元素除的对应元素除 a=1 2 3,b=4 5 6 c1=a.bc2=b./ac1=4.0000 2.5000 2.0000c2=4.0000 2.5000 2.0000第40页,共56页,编辑于2022年,星期二.元素对元素的幂元素对元素的幂a=1 2 3,b=4 5 6z=a.2z=1.00 4.00 9.00z=a.bz=1.00 32.00 7

28、29.00第41页,共56页,编辑于2022年,星期二第42页,共56页,编辑于2022年,星期二第43页,共56页,编辑于2022年,星期二logm(A)求矩阵求矩阵A的对数的对数sqrtm(A)求矩阵求矩阵A的平方根的平方根funm(A,fun)一般的方阵函数一般的方阵函数第44页,共56页,编辑于2022年,星期二 MATLABMATLAB提提供供了了6 6种种关关系系运运算算符符:(小小于于)、=(大大于于)、=(=(大大于于或或等等于于)、=(=(等等于于)、=(=(不等于不等于)。关系运算符的运算法则。关系运算符的运算法则。第45页,共56页,编辑于2022年,星期二B=1 1 1

29、 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 0C=1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1A=0.9501 0.7621 0.6154 0.4057 0.0579 0.2311 0.4565 0.7919 0.9355 0.3529 0.6068 0.0185 0.9218 0.9169 0.8132 0.4860 0.8214 0.7382 0.4103 0.0099 0.8913 0.4447 0.1763 0.8936 0.1389A=rand(5)B=A0.5 C=A=0.5第46页,共

30、56页,编辑于2022年,星期二 例例:产产生生5阶阶随随机机方方阵阵A,其其元元素素为为10,90区区间间的的随随机机整整数数,然然后后判判断断A的的元元素素是是否否能能被被3整除。整除。(1)生成生成5阶随机方阵阶随机方阵A A=fix(90-10+1)*rand(5)+10)(2)判断判断A的元素是否可以被的元素是否可以被3整除整除 P=rem(A,3)=0第47页,共56页,编辑于2022年,星期二 MATLAB提提供供了了4 4种种逻逻辑辑运运算算符符:&(与与)、|(或或)、(非非)、xor(xor(异或异或)。运算法则。运算法则。a=1:5b=2:6c=(a2)&(b=0).*y

31、;%将将sin(x)的负值设为的负值设为0z=z+0.5*(y0);z=(x a=1 2 0 4;.2 0 1 3b=all(a)c=any(a)b=1 0 0 1c=1 1 1 1第50页,共56页,编辑于2022年,星期二 exist(a)%变量或函数是否被定义变量或函数是否被定义ans=1 exist(e)ans=0isempty(a)%参数是否为空参数是否为空ans=0isstr(hello)%参数是否为一字符串参数是否为一字符串ans=1第51页,共56页,编辑于2022年,星期二 isequal(a,b)%判断数组或矩阵是否相等判断数组或矩阵是否相等ans=0 y=Hello,z=

32、hellostrcmp(y,z)%判断字符串是否相等判断字符串是否相等ans=0b=4 5 6isprime(b)%元素是否为素数元素是否为素数ans=0 1 0第52页,共56页,编辑于2022年,星期二字字符符串串是是用用单单撇撇号号括括起起来来的的字字符符序序列列。例例如如,Beijing Jiaotong University。若若字字符符串串中中的的字字符符含含有有单单撇撇号号,则则该该单单撇撇号号字字符符应应用用两个单撇号来表示。两个单撇号来表示。S=Im LucyIm Lucy字字符符串串中中每每个个字字符符(空空格格也也是是字字符符),对对应应矩矩阵阵的的一一个个元元素素。si

33、ze(S)字字符符串串是是以以ASCII码码形形式式存存储储的的。用用abs和和double命命令令可可以以看看到到字符所对应的字符所对应的ASCII码值。码值。abs(S)setstr和和char命令可以把命令可以把ASCII码矩阵转换为字符串矩阵。码矩阵转换为字符串矩阵。第53页,共56页,编辑于2022年,星期二char(72 101 108 108 111)setstr(72 101 108 108 111)ans=Helloch=Northern Jiaotong Universitye=ch(1:5)f=ch(end:-1:1)g=upper(ch)h=lower(g)第54页,共

34、56页,编辑于2022年,星期二 ans=001 002003 004 str2num(001 002;003 004)ans=1 2 3 4str2num,num2str第55页,共56页,编辑于2022年,星期二 与与字字符符串串有有关关的的另另一一个个重重要要函函数数是是eval,其其调调用用格格式为:式为:eval(t)其其中中t为为字字符符串串。它它的的作作用用是是把把字字符符串串的的内内容容作作为为对应的对应的MATLAB语句来执行语句来执行。例如。例如 t=pi;m=t,sin(t),cos(t);y=eval(m)y=3.1416 0.0000 -1.0000第56页,共56页,编辑于2022年,星期二

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁