资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第三章,Matlab,矩阵及其运算,3.1,Matlab,矩阵概述,在,matlab,中,所有的计算都是以矩阵为单元进行的,可,见矩阵是最基本的数据对象,是,matlab,的核心。,由,m,行,n,列构成的数组,a,称为,m,n,阶矩阵,矩阵元素记为,a,ij,。,当,m=n,时,矩阵,a,称为方阵。当,i,j,时,所有的,a,ij,=0,,且,m=n,,得到的矩阵称为对角阵。,当对角阵的对角线上的元素全为,1,时,称为单位阵,记为,I,。,对于(,m,n,)阶矩阵,w,,当,w,ij,=,a,ji,时,称,w,是,a,的转置矩阵,记为,w=a,。,对于,a,为(,m,1,)的形式时,称,a,是,m,个元素的,列向量,;对于,a,为(,1,n,)的形式时,称,a,是,n,个元素的,行向量,。,任意以,1,1,的矩阵形式表示的单个实数或复数,称之为标量。,对于,a,为(,0,0,)的形式时,称,a,是空矩阵。,其含义是一维或多维的长度为,0,的矩阵。,3.2 MATLAB,矩阵,3.2.1,矩阵的建立,1,直接输入法,最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用,方括号,括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。,例,3-1 A=1,2,3,4;5,6,7,8;9,10,11,12,2,利用,M,文件建立矩阵,对于比较大且比较复杂的矩阵,可以为它专门建立一个,M,文件。下面通过一个简单例子来说明如何利用,M,文件创建矩阵。,例,3-2,利用,M,文件建立,MYMAT,矩阵。,(1),启动,MATLAB,文本编辑器,并输入待建矩阵:,MYMAT=1 2 3 4 5 6 7 8 9;,11 12 13 14 15 16 17 18 19;,21 22 23 24 25 26 27 28 29;,(2),把输入的内容以纯文本方式存盘,(,设文件名为,mymatrix.m,),。,(3),在,MATLAB,命令窗口中输入,mymatrix,,即运行该,M,文件,就会自动建立一个名为,MYMAT,的矩阵,可供以后使用。,3,利用冒号表达式建立一个向量,冒号表达式可以产生一个行向量,一般格式是:,e1:e2:e3,其中,e1,为初始值,,e2,为步长,,e3,为终止值。在,MATLAB,中,还可以用,linspace,函数产生行向量。其调用格式为:,linspace(a,b,n,),其中,a,和,b,是生成向量的第一个和最后一个元素,,n,是元素总数。显然,,linspace(a,b,n,),与,a:(b-a)/(n-1):b,等价。,例,3-3 t=0,:,1,:,5,4,利用已建好的矩阵建立更大的矩阵,大矩阵可由方括号中的小矩阵或向量建立起来。,例,3-4 A=1,2,3;4,5,6;7,8,9;,B=1:2:5;4:2:8;7:2:11;,C=A,B;B,A,注意:两个矩阵拼接一定要保证拼成矩形矩阵。,3.2.2,矩阵的拆分,1,矩阵元素的引用方式,(,1,)双下标法:通过双下标引用矩阵的元素,例如,A(3,2)=200,。(,2,)单下标法:采用矩阵元素的序号来引用矩阵元素。,矩阵元素的序号就是相应元素在内存中的排列顺序。在,MATLAB,中,矩阵元素按列存储,先第一列,再第二列,依次类推。,例如:,A=1,2,3;4,5,6;A(3),ans,=2,显然,序号,(Index),与下标,(Subscript),是一一对应的,以,mn,矩阵,A,为例,矩阵元素,A(i,j,),的序号为,(j-1)*,m+i,。其相互转换关系也可利用,sub2ind,和,ind2sub,函数求得。,例如:,sub2ind,(,size(A),1,2,),i,j,=ind2sub,(,size(A),3,),2,利用冒号表达式获得子矩阵,A(:,j,),表示取,A,矩阵的第,j,列全部元素;,A(i,:),表示,A,矩阵第,i,行的全部元素;,A(i,j,),表示取,A,矩阵第,i,行、第,j,列的元素。,A(i:i+m,:),表示取,A,矩阵第,i,i+m,行的全部元素;,A(:,k:k+m,),表示取,A,矩阵第,k,k+m,列的全部元素,,A(i:i+m,k:k+m,),表示取,A,矩阵第,i,i+m,行内,并在第,k,k+m,列中的所有元素。,例如:,A=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20,A(1,:)A(:,2:4)A(2:3,4:5)A(2:3,1:2:5),A(:),将,A,矩阵每一列元素堆叠起来,成为一个,列向量。,此外,还可利用一般向量和,end,运算符来表示矩阵下标,从而获得子矩阵。,end,表示某一维的末尾元素下标。,例如:,A(end,:)A(1,4,3:end),3.,利用空矩阵删除矩阵的元素,在,MATLAB,中,定义,为空矩阵。给变量,X,赋空矩阵的语句为,X=,。,注意,,X=,与,clear X,不同,,clear,是将,X,从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为,0,。,例如:,A=1,2,3,0,0;7,0,9,2,6;1,4,-1,1,8,A(:,2,4)=,4,改变矩阵的形状,reshape(A,m,n,),函数在矩阵总元素保持不变的前提下,将矩阵,A,重新排成,mn,的二维矩阵。,注意:,在,MATLAB,中,矩阵元素按列存储,即首先存储矩阵的第,1,列元素,然后存储第,2,列元素,,,一直到矩阵的最后一列元素。,reshape,函数只是改变原矩阵的行数和列数,即改变其逻辑结构,但并不改变原矩阵元素个数及其存储结构。,3.2.3,特殊矩阵,1,通用的特殊矩阵常用的产生通用特殊矩阵的函数有:,zeros,:产生全,0,矩阵,(,零矩阵,),。,ones,:产生全,1,矩阵,(,幺矩阵,),。,eye,:产生单位矩阵。,rand,:产生,0,1,间均匀分布的随机矩阵。,randn,:产生均值为,0,,方差为,1,的标准正态分布随机矩阵。,
展开阅读全文