《Matlab矩阵的操作》PPT课件.ppt

上传人:tia****nde 文档编号:12708460 上传时间:2020-05-14 格式:PPT 页数:59 大小:820.50KB
返回 下载 相关 举报
《Matlab矩阵的操作》PPT课件.ppt_第1页
第1页 / 共59页
《Matlab矩阵的操作》PPT课件.ppt_第2页
第2页 / 共59页
《Matlab矩阵的操作》PPT课件.ppt_第3页
第3页 / 共59页
点击查看更多>>
资源描述
第三讲矩阵的操作,矩阵的建立矩阵的保存和调用矩阵的拆分多维矩阵矩阵的运算字符与字符串,一矩阵的建立,直接输入法利用M文件建立矩阵利用矩阵编辑器MatrixEditor完成输入和修改利用MATLAB函数建立矩阵建立大矩阵,1.直接输入法,将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。例:x=1234;5678x=1,2,3,4;5,6,7,8,2.利用文件建立矩阵,对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。例:利用M文件建立A矩阵。(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵.(2)把输入的内容存盘(设文件名为mymatrix.m)。(3)运行该M文件,就会自动建立一个名为A的矩阵,可供以后使用。,A=16.03.02.013.05.010.011.08.09.06.07.012.04.015.014.01.0,(2)存为:mymatrix.m,(3)运行:mymatrix,(1)MATLAB程序编辑器中输入:,(一)利用MATLAB程序编辑器:,编辑一个文本文件:16.03.02.013.05.010.011.08.09.06.07.012.04.015.014.01.0(2)装入该文本文件:loadmymatrix.dat或者:loadmymatrix.txt(3)创建一个变量名为mymatrix的矩阵,(二)利用其它文本编辑器:(文本或二进制格式),将以文本或二进制格式存储的数据读入MATLAB的另一种方式是用ImportWizard.FileImportData,3.利用矩阵编辑器ArrayEditor,先在命令窗口输入:A=1在Workspace窗口,双击该变量,打开矩阵编辑器,进行输入和修改。,4.利用MATLAB函数建立特殊矩阵,几个产生特殊矩阵的函数:zeros、ones、eye、rand、randn。这几个函数的调用格式相似,下面以产生零矩阵的zeros函数为例进行说明。其调用格式是:zeros(m)产生mm零矩阵zeros(m,n)产生mn零矩阵。zeros(size(A)产生与矩阵A同样大小的零矩阵相关的函数有:length(A)给出行数和列数中的较大者,即length(A)=max(size(A);ndims(A)给出A的维数,size(A)多维矩阵各维长度,常见的矩阵生成函数,例:,已知矩阵,试生成与矩阵A大小相同的单位阵,全0阵及全1阵;,解:,输入命令,A=123;456;789;B1=eye(size(A),B2=zeros(size(A),B3=ones(size(A),Z=zeros(2,4)Z=00000000R=randn(4,4)R=1.06680.2944-0.6918-1.44100.0593-1.33620.85800.5711-0.09560.71431.2540-0.3999-0.83231.6236-1.59370.6900,F=5*ones(3,3)F=555555555N=fix(10*rand(1,10)N=4944852680,此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成mn的二维矩阵,其元素是以列的方式从A中获得,A必须包含mn个元素。,A=16321351011896712415141reshape(A,2,8)ans=16936271312541015111481,5.建立大矩阵,大矩阵可由方括号中的小矩阵建立起来。例如:A=123;456;789;C=A,eye(size(A);ones(size(A),AC=123100456010789001111123111456111789,6冒号表达式,冒号表达式的一般格式:e1:e2:e3还可以用linspace函数产生一个线性间隔的行向量:linspace(a,b,n):a,b,n:初值,终值,点数linspace(a,b,n)与a:(b-a)/(n-1):b等价。linspace用于产生一个等差数列,括号里三项分别表示起始值、终止值和元素数目;logspace用于产生一个对数间隔行向量(等比数列),b=logspace(0,4,5),表示产生一个起始值为100,终止值为104,元素数目为5的等比数列.,X=10:20,X=0:0.1:0.5,X=linspace(0,pi,11)或X=linspace(0,1,11)*pi,X=Columns1through700.31420.62830.94251.25661.57081.8850Columns8through112.19912.51332.82743.1416,二矩阵的保存和调用,savemydataAXloadmydata系统自动沿设定好的路径以”.mat”格式存储文件savefile=mydata.mat;save(savefile,A,X)Load(savefile)如果想存储在指定路径:saveD:homeworkmydataAX或者:savefile=D:homeworkmydata.mat;,三矩阵的拆分,MATLAB允许用户对一个矩阵的单个元素进行赋值和操作。例如A(3,2)=200也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素按列编号,先第一列,再第二列,依次类推。以mn矩阵A为例,矩阵元素A(i,j)的序号为:(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得(分别为:把矩阵下标变为元素序号和把元素序号变为矩阵下标)。,1.矩阵元素,A=172418;222714;461320A=172418222714461320%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,2.矩阵拆分和结构变换,(1)利用冒号表达式获得子矩阵,A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。,(2)利用空矩阵删除矩阵的元素,在MATLAB中,定义为空矩阵。给变量X赋空矩阵的语句为X=。注意:X=与clearX不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间,只是维数为0。将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。,X=.16321351011896712415141;X(:,2)=X(1,2)=X(2:2:10)=,X=16213511897124141,X=1692713121,A=4:6A=A-3;A;A+3A=123456789B=A(1:2,2:3)B=2356A(:,2)=A=134679,A(2,2)=0A=134079A(3)ans=7A(2:4)ans=473,A=123456789sum(A)ans=121518Aans=147258369,B=diag(A)%提取或建立对角阵B=159C=diag(B)C=100050009,A=123456789B=A4B=000011111,r,c=find(A4)r=32323c=12233,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)%相对第K对角线及以下元素triu(A)%主对角线及以上元素取矩阵A的元素,其余为0triu(A,K)%rot90(A)%逆时针旋转90度rot90(A,K)L=flipud(A)%将矩阵A上下翻转fliplr(A)%将矩阵A左右翻转reshape(A,m,n),(3)矩阵的结构变换,Practice:A=magic(4)B1=rot90(A),B2=rot90(A,2),B3=tril(A,2),B4=triu(A,-1),BT=A,(1)对二维矩阵进行扩充得到三维矩阵:,四多维矩阵,以三维矩阵为例,常用的方法有4种:,a=1,2;3,4a=1234a(:,:,2)=5,6;7,8,a(:,:,1)=1234a(:,:,2)=5678,(2)若干个同样大小的二维矩阵进行组合得到三维矩阵:,b(:,:,1)=12;34b=1234b(:,:,2)=56;78,b(:,:,1)=1234b(:,:,2)=5678,(3)除产生单位矩阵的eye函数外,前面介绍的建立矩阵的函数都可以延伸到三维矩阵:,C=randn(4,3,2),c=12c=12C=repmat(c,324),C(:,:,1)=121212121212C(:,:,2)=121212121212,repmat:复制小矩阵生成多维数组,(4)用cat函数构建多维矩阵。cat(dim,A1,A2,)cat函数把大小相同的若干矩阵A1,A2,,按照dim指定的维数组合成新的矩阵,A1=12;34,A2=56;78C1=cat(1,A1,A2)C2=cat(2,A1,A2)C3=cat(3,A1,A2),(一)算术运算(二)关系运算(三)逻辑运算,五矩阵的运算,(一)算术运算,1.基本算术运算MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。注意:运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。2.点运算点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。3MATLAB常用数学函数,(1)矩阵加、减(,)运算相加、减的两矩阵必须有相同的行和列,两矩阵对应元素相加减。允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。,(2)矩阵乘()运算A矩阵的列数必须等于B矩阵的行数标量可与任何矩阵相乘。,(3)矩阵除(,/)运算矩阵除的运算在线性代数中没有,有矩阵逆的运算,在matlab中有两种矩阵除运算:(左除):AB表示A左除B;/(右除):A/B表示B右除A,设A是可逆矩阵的运算,AX=B的解是A左除B,即X=AB;XA=B的解是A右除B,即X=B/A,A=12;34;56;B=56;78;910;C=ABD=A/BE=BAF=B/A,对于AX=b的线性方程组,有两种解法:一种是利用矩阵求逆,即X=inv(A)*b;另一种是用左除,即X=Ab。除法的速度快。,A=rand(5)b=ones(5,1)x1=inv(A)*bx2=Ab,(4)矩阵乘方()运算,ApA自乘p次幂设A为方阵,p为正整数,则Ap表示A自乘p次;若A为方阵且非奇异,p为正整数,A(-p)表示A的逆自乘p次。,对于p的其它值,计算将涉及特征值和特征向量,如A,p都是矩阵,Ap则无意义。,A=1,2,3;2,3,1;3,2,1B=A2C=A0.3,(5).矩阵的其它运算,Inv矩阵求逆;det行列式的值eig矩阵的特征值和特征向量;diag对角矩阵;矩阵转置;sqrt矩阵开方;mean矩阵元素的平均值;std矩阵元素的标准偏差;,命令:X,D=eig(A)其中D的对角线元素是特征值,X是矩阵,它的列是相应的特征向量例:A=3,-1;-1,3;X,D=eig(A),X=-0.7071-0.70710.7071-0.7071D=4002,Thefirstrowcontainstheheartrate,weight,andexercisehoursforpatient1,thesecondrowcontainsthedataforpatient2,andsoon.Themeanandstandarddeviationofeachcolumn:,mu=mean(D),sigma=std(D)mu=75.8000161.80003.4800sigma=5.630325.49902.2107,D=721343.2;.812013.5;.691567.1;.821482.4;.751701.2,(6)点运算(,./,.),a=123;456;789b=246;135;7910a.*bans=281841530497290a*b对比一下上面两式得到的结果。,a.b=b./a%给出a,b对应元素间的商.%都是a的元素被b的对应元素除a=123,b=456c1=a.bc2=b./ac1=4.00002.50002.0000c2=4.00002.50002.0000,.元素对元素的幂a=123,b=456z=a.2z=1.004.009.00z=a.bz=1.0032.00729.00,logm(A)求矩阵A的对数sqrtm(A)求矩阵A的平方根funm(A,fun)一般的方阵函数,(二)关系运算,MATLAB提供了6种关系运算符:(大于)、=(大于或等于)、=(等于)、=(不等于)。关系运算符的运算法则。,B=1110000110101110110010010,C=1111111111111111111111111,A=0.95010.76210.61540.40570.05790.23110.45650.79190.93550.35290.60680.01850.92180.91690.81320.48600.82140.73820.41030.00990.89130.44470.17630.89360.1389,A=rand(5),B=A0.5,C=A=0.5,例:产生5阶随机方阵A,其元素为10,90区间的随机整数,然后判断A的元素是否能被3整除。(1)生成5阶随机方阵AA=fix(90-10+1)*rand(5)+10)(2)判断A的元素是否可以被3整除P=rem(A,3)=0,(三)逻辑运算,MATLAB提供了4种逻辑运算符:%将sin(x)的负值设为0z=z+0.5*(ya=1204;.2013b=all(a)c=any(a),b=1001c=1111,exist(a)%变量或函数是否被定义ans=1exist(e)ans=0isempty(a)%参数是否为空ans=0isstr(hello)%参数是否为一字符串ans=1,isequal(a,b)%判断数组或矩阵是否相等ans=0y=Hello,z=hellostrcmp(y,z)%判断字符串是否相等ans=0b=456isprime(b)%元素是否为素数ans=010,六字符与字符串,字符串是用单撇号括起来的字符序列。例如,NorthenJiaotongUniversity。若字符串中的字符含有单撇号,则该单撇号字符应用两个单撇号来表示。S=ImLucy字符串中每个字符(空格也是字符),对应矩阵的一个元素。size(S)字符串是以ASCII码形式存储的。用abs和double命令可以看到字符所对应的ASCII码值。abs(S)setstr和char命令可以把ASCII码矩阵转换为字符串矩阵。,char(72101108108111),setstr(72101108108111),ans=Hello,ch=NorthenJiaotongUniversity,e=ch(1:5),f=ch(end:-1:1),g=upper(ch),h=lower(g),001002;003004ans=001002003004str2num(001002;003004)ans=1234,str2num,num2str,与字符串有关的另一个重要函数是eval,其调用格式为:eval(t)其中t为字符串。它的作用是把字符串的内容作为对应的MATLAB语句来执行。例如t=pi;m=t,sin(t),cos(t);y=eval(m),y=3.14160.0000-1.0000,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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