《第2章矩阵优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第2章矩阵优秀PPT.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章矩阵现在学习的是第1页,共61页2.1 变量和数据操作变量和数据操作2.1.1 变量与赋值变量与赋值1变量命名变量命名在在MATLAB 6.5中,变量名是以字母开头,中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多后接字母、数字或下划线的字符序列,最多63个字符。在个字符。在MATLAB中,中,变量名区分字变量名区分字母的大小写母的大小写。一般来讲,一般来讲,MATLAB中,数据的存储与计算中,数据的存储与计算都是以双精度进行的。都是以双精度进行的。现在学习的是第2页,共61页2赋值语句赋值语句(1)变量变量=表达式表达式 (2)表达式表达式其中表达式是用运算符将有关运算量
2、连接起其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个来的式子,其结果是一个矩阵矩阵。所有的所有的MATLAB变量,包括标量、向量、矩阵、字符串、数组、变量,包括标量、向量、矩阵、字符串、数组、结构和对象等都以数组形式保存。结构和对象等都以数组形式保存。所有所有MATLAB数据都按列存放数据都按列存放现在学习的是第3页,共61页例如:字符串数组例如:字符串数组a:a=house;china;hellosize(a)a数组的保存顺序为:数组的保存顺序为:hchoheuilsnleao现在学习的是第4页,共61页例例2-1 计算表达式的值,并显示计算结果。计算表达式的值,并显示计算结果
3、。在在MATLAB命令窗口输入命令:命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y)其中其中pi和和i都是都是MATLAB预先定义的变量,分预先定义的变量,分别代表代表圆周率别代表代表圆周率和虚数单位。和虚数单位。输出结果是:输出结果是:z=-0.3488+0.3286i现在学习的是第5页,共61页 2.1.2 预定义变量预定义变量在在MATLAB工作空间中,还驻留几个由系统工作空间中,还驻留几个由系统本身定义的变量。例如,用本身定义的变量。例如,用pi表示圆周率表示圆周率的近似值,用的近似值,用i,j表
4、示虚数单位。表示虚数单位。预定义变量有特定的含义,在使用时,应尽预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。量避免对这些变量重新赋值。现在学习的是第6页,共61页2.1.3 内存变量的管理内存变量的管理1内存变量的删除与修改内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击存变量的属性。当选中某些变量后,再单击Delete按钮按钮,就能删除这些变量。当选中某,就能删除这些变量。当选中某些变量后,再单击些变量后,再单击Open
5、按钮按钮,将进入变量,将进入变量编辑器。通过变量编辑器可以直接观察变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。中的具体元素,也可修改变量中的具体元素。现在学习的是第7页,共61页clear命令命令用于删除用于删除MATLAB工作空间中的变工作空间中的变量。量。who和和whos这这两个命令两个命令用于显示在用于显示在MATLAB工作空间中已经驻留的变量名清工作空间中已经驻留的变量名清单。单。who命令只显示出驻留变量的名称,命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。
6、大小、所占字节数及数据类型等信息。练习:可在命令行窗口中输入这三个命令,练习:可在命令行窗口中输入这三个命令,看看运行结果看看运行结果现在学习的是第8页,共61页2.1.4 MATLAB常用数学函数常用数学函数MATLAB提供了许多数学函数,函数的自提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。一个与自变量同维数的矩阵。函数使用说明:函数使用说明:(1)三角函数以弧度为单位计算。三角函数以弧度为单位计算。(2)abs函数可以求实数的绝对
7、值函数可以求实数的绝对值 (3)用于取整的函数有用于取整的函数有fix、floor、ceil、round,要注意它们的区别。,要注意它们的区别。现在学习的是第9页,共61页1)fix(x):截尾取整截尾取整fix(3.123.12)ans=33(2)floor(x):不超过不超过x的最大整数的最大整数.(高斯取整高斯取整)floor(3.123.12)ans=34(3)ceil(x):大于大于x的最小整数的最小整数ceil(3.123.12)ans=43(4)四舍五入取整四舍五入取整round(3.123.12)ans=33round(3.63.6)ans=44现在学习的是第10页,共61页M
8、ATLAB中四个取整函数具体使用方法如下:中四个取整函数具体使用方法如下:Matlab取整函数有取整函数有:fix,floor,ceil,round.fix朝零方向取整,如朝零方向取整,如fix(1.3)=1;fix(1.3)=1;floor朝负无穷方向取整,如朝负无穷方向取整,如floor(1.3)=2;floor(1.3)=1;ceil朝正无穷方向取整,如朝正无穷方向取整,如ceil(1.3)=1;ceil(1.3)=2;round四舍五入到最近的整数,如四舍五入到最近的整数,如round(1.3)=1;round(1.52)=2;round(1.3)=1;round(1.52)=2。现在
9、学习的是第11页,共61页2.2 MATLAB矩阵矩阵2.2.1 矩阵的建立矩阵的建立1直接输入法直接输入法 最简单的建立矩阵的方法是从键盘直接输最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。隔,不同行的元素之间用分号分隔。数组或矩阵是数组或矩阵是MATLAB最基础的内容之一,几乎所有的数据最基础的内容之一,几乎所有的数据都是用数组的形式进行存储的
10、,所有都是用数组的形式进行存储的,所有MATLAB数据都是按数据都是按列存放的。列存放的。数组只是一种编程语言的名数组只是一种编程语言的名词词,在,在Matlab可以建立任意可以建立任意尺寸和维数尺寸和维数。矩阵一般特。矩阵一般特指二维数组指二维数组,向量是矩阵,向量是矩阵的特殊形式(即只有一列,的特殊形式(即只有一列,行向量,或者一行,列向行向量,或者一行,列向量)量)现在学习的是第12页,共61页例例22(1):):x=1 3 4;2,6,5;3 2,4Y=2*xY=26841210648现在学习的是第13页,共61页例例22(2):):x_r=1 2 3;4,5,6x_i=7,8,9;1
11、0 11,12c=x_r+i*x_ic=1.0000+7.0000i2.0000+8.0000i3.0000+9.0000i4.0000+10.0000i5.0000+11.0000i6.0000+12.0000i创建了一个复数矩阵。也可用直接输入法创建该矩阵现在学习的是第14页,共61页2利用冒号表达式建立一个向量利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3 其中其中e1为初始值,为初始值,e2为步长,为步长,e3为终止值。为终止值。3.在在MATLAB中,还可以用中,还可以用linspace函数产生行向量。
12、其调函数产生行向量。其调用格式为:用格式为:linspace(a,b,n)其中其中a和和b是生成向量的第一个和最后一个元素,是生成向量的第一个和最后一个元素,n是元素是元素总数。总数。显然,显然,linspace(a,b,n)与与a:(b-a)/(n-1):b等价。等价。例:例:t=linspace(0,3*pi,500);y=sin(t)%产生正弦波产生正弦波 plot(t,y)绘制图形绘制图形例如:例如:x=0:0.5:2例如:例如:x=linspace(0,2,5)现在学习的是第15页,共61页4利用矩阵编辑器创建和修改大型矩阵利用矩阵编辑器创建和修改大型矩阵view-workspace
13、-双击已创建的矩阵变量弹双击已创建的矩阵变量弹出矩阵编辑器,输入矩阵数据。出矩阵编辑器,输入矩阵数据。利用矩阵编辑器,用户最好先预先定义一个利用矩阵编辑器,用户最好先预先定义一个矩阵变量。矩阵变量。现在学习的是第16页,共61页2.2.2 矩阵元素的引用矩阵元素的引用 (1)通过通过下标下标引用矩阵的元素,例如引用矩阵的元素,例如 A(3,2)=200 (2)采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,中,矩阵元素按列存储,先第一列,再第二列
14、,依次类推。例如先第一列,再第二列,依次类推。例如 A=1,2,3;4,5,6;A(3)ans=2显然,序号显然,序号(Index)与下标与下标(Subscript)是一一对应的,以是一一对应的,以mn矩矩阵阵A为例,矩阵元素为例,矩阵元素A(i,j)的序号为的序号为(j-1)*m+i。现在学习的是第17页,共61页2子矩阵子矩阵 (1)利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵 A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素;A(i,:)表示表示A矩阵第矩阵第i行行的全部元素;的全部元素;A(i,j)表示取表示取A矩阵第矩阵第i行、第行、第j列的一个元素。列的一个元
15、素。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列列中的所有元素。中的所有元素。此外,还可利用一般向量和此外,还可利用一般向量和end运算符来表示矩阵下标,从而获运算符来表示矩阵下标,从而获得子矩阵。得子矩阵。end表示某一维的末尾元素下标。表示某一维的末尾元素下标。现在学习的是第18页,共61页例:例:a=134467;265668;324869;8645365;5456567a(
16、3)%第3个元素a(3,2)第3行第2列的一个元素a(1:3)第1到第3行的三个元素a(3:end)第3到最后行的所有元素a(:,2)第2列的所有元素a(2,:)第2行的所有元素a(1:3,2)第13行,第2列的所有元素a(:,:)%所有元素现在学习的是第19页,共61页2.2.3 特殊矩阵特殊矩阵1通用的特殊矩阵通用的特殊矩阵常用的产生通用特殊矩阵的函数有:常用的产生通用特殊矩阵的函数有:zeros(n,m):产生全:产生全0矩阵矩阵(零矩阵零矩阵)。ones(n,m):产生全:产生全1矩阵矩阵(幺矩阵幺矩阵)。eye(n,m):产生单位矩阵。:产生单位矩阵。rand(n,m):产生:产生0
17、1间均匀分布的随机矩间均匀分布的随机矩阵。阵。randn(n,m):产生均值为:产生均值为0,方差为,方差为1的标准的标准正态分布随机矩阵。正态分布随机矩阵。现在学习的是第20页,共61页例例2-3 分别建立分别建立33、32和与矩阵和与矩阵A同样大小的零矩阵。同样大小的零矩阵。(1)建立一个建立一个33零矩阵。零矩阵。zeros(3)(2)建立一个建立一个32零矩阵。零矩阵。zeros(3,2)(3)设设A为为23矩阵,则可以用矩阵,则可以用zeros(size(A)建立一个与建立一个与矩阵矩阵A同样大小零矩阵。同样大小零矩阵。A=1 2 3;4 5 6;%产生一个产生一个23阶矩阵阶矩阵A
18、zeros(size(A)%产生一个与矩阵产生一个与矩阵A同样大小的零矩同样大小的零矩阵阵现在学习的是第21页,共61页例例2-4 建立随机矩阵:建立随机矩阵:(1)在区间在区间20,50内均匀分布的内均匀分布的5阶随机矩阵。阶随机矩阵。命令如下:命令如下:x=20+(50-20)*rand(5)例例2-5建立建立43的单位矩阵的单位矩阵 a=eye(4,3)例例2-6建立建立43的全的全1矩阵矩阵 a=ones(4,3)现在学习的是第22页,共61页2用于专门学科的特殊矩阵用于专门学科的特殊矩阵(1)魔方矩阵魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列魔方矩阵有一个有趣的性质,其每行、每列
19、及两条对角线上的元素和都相等。对于及两条对角线上的元素和都相等。对于n阶阶魔方阵,其元素由魔方阵,其元素由1,2,3,n2共共n2个整数组个整数组成。成。MATLAB提供了求魔方矩阵的函数提供了求魔方矩阵的函数magic(n),其功能是生成一个,其功能是生成一个n阶魔方阵。阶魔方阵。M=magic(5)现在学习的是第23页,共61页(2)伴随矩阵伴随矩阵MATLAB生成伴随矩阵的函数是生成伴随矩阵的函数是compan(p),a=1,0,-7,6;p=compan(a)现在学习的是第24页,共61页 2.3 MATLAB运算运算 2.3.1算术运算算术运算1基本算术运算基本算术运算 MATLAB
20、的基本算术运算有:的基本算术运算有:(加加)、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)。注意,运算是在矩阵意义下进行的,单个数注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。据的算术运算只是一种特例。现在学习的是第25页,共61页 (1)矩阵加减运算矩阵加减运算 假定有两个矩阵假定有两个矩阵A和和B,则可以由,则可以由A+B和和A-B实现矩阵的加减运算。运算规则是:若实现矩阵的加减运算。运算规则是:若A和和B矩阵的维数相同,则可以执行矩阵的矩阵的维数相同,则可以执行矩阵的加减运算,加减运算,A和和B矩阵的相应元素相加减。矩阵的相应元素相加减。如果如果A与
21、与B的维数不相同,则的维数不相同,则MATLAB将给将给出错误信息,提示用户两个矩阵的维数不匹出错误信息,提示用户两个矩阵的维数不匹配。配。a=134;2,6,5;32,4b=231;412;453c=a+bd=ab现在学习的是第26页,共61页(2)矩阵乘法矩阵乘法假定有两个矩阵假定有两个矩阵A和和B,若,若A为为mn矩阵,矩阵,B为为np矩阵,则矩阵,则C=A*B为为mp矩阵。矩阵。a=134;2,6,5;32,4b=231;412;453c=a*bd=ab现在学习的是第27页,共61页 (3)矩阵除法矩阵除法在在MATLAB中,有两种矩阵除法运算:中,有两种矩阵除法运算:和和/,分别表示
22、,分别表示左除和右除。如果左除和右除。如果A矩阵是非奇异方阵,则矩阵是非奇异方阵,则AB和和B/A运算可以实现。运算可以实现。对于含有标量的运算,两种除法运算的结果相同,如对于含有标量的运算,两种除法运算的结果相同,如3/4和和43有相同的值,都等于有相同的值,都等于0.75。又如,设。又如,设a=10.5,25,则,则a/5=5a=2.1000 5.0000。对于矩阵来。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般的关系。对于矩阵运算,一般ABB/A。奇异矩阵就是对应的行列式等于0的矩阵,可逆矩阵就是非奇
23、异矩阵 现在学习的是第28页,共61页一般情况下:一般情况下:x=ab是方程是方程a*x=b的解,而的解,而x=b/a是方程是方程x*a=b的解的解 AB等效于等效于A的逆左乘的逆左乘B矩阵,也就是矩阵,也就是inv(A)*B,而,而B/A等效于等效于A矩阵的逆右乘矩阵的逆右乘B矩矩阵,也就是阵,也就是B*inv(A)。a=123;4,2,6;74,9b=4;1;2c=abd=inv(a)*b现在学习的是第29页,共61页(4)矩阵乘方矩阵乘方 乘方运算符:乘方运算符:“”,运算规则:,运算规则:ap表示表示a自乘自乘p次次a=123;4,5,6;78,9b=a2现在学习的是第30页,共61页
24、(5)矩阵的转置、逆运算、行列式运算与秩)矩阵的转置、逆运算、行列式运算与秩运算运算 a=1 2 0;2 5-1;4 10-1 矩阵的转置矩阵的转置 c=a 逆运算逆运算 d=inv(a)行列式运算行列式运算 e=det(a)秩运算秩运算 f=rank(a)现在学习的是第31页,共61页2点运算点运算(又称为数组运算)又称为数组运算)在在MATLAB中,有一种特殊的运算,因中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有所以叫点运算。点运算符有.*、./、.和和.。两矩阵进行点运算是指它们的对应元素进行两矩阵进行点运算
25、是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。相关运算,要求两矩阵的维参数相同。现在学习的是第32页,共61页a=134;2,6,5;32,4b=231;412;453c1=a.*bc2=a*bd1=a/bd2=a./bd3=b.ae1=a.2e2=a2点除时,a./b=b.a每个元素的乘方矩阵自乘P次现在学习的是第33页,共61页3矩阵与标量(数)间的四则运算矩阵与标量(数)间的四则运算 矩阵与标量间的四则运算即为矩阵中的矩阵与标量间的四则运算即为矩阵中的每个元素与标量进行加、减、乘、除运算,每个元素与标量进行加、减、乘、除运算,当进行除法运算时,标量只能做除数当进行除法运算时,标
26、量只能做除数a=134;2,6,5;32,4b=a+2c=a/2现在学习的是第34页,共61页2.3.2 关系运算关系运算 MATLAB提供了提供了6种关系运算符:种关系运算符:(小于小于)、(大于大于)、=(大于等于大于等于)、=(等于等于)、=(不等于不等于)。它们的含义不难。它们的含义不难理解,但要注意其书写方法与数学中的不等理解,但要注意其书写方法与数学中的不等式符号不尽相同。式符号不尽相同。现在学习的是第35页,共61页 关系运算符的运算法则为:关系运算符的运算法则为:(1)当两个比较量是标量时,直接比较两当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为数的大小
27、。若关系成立,关系表达式结果为1,否则为,否则为0。(2)当参与比较的量是两个维数相同的矩当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由原矩阵相同的矩阵,它的元素由0或或1组成。组成。现在学习的是第36页,共61页 (3)当参与比较的一个是标量,而另一个是当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标矩阵时,则把标量与矩阵的每一个
28、元素按标量关系运算规则逐个比较,并给出元素比较量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由原矩阵相同的矩阵,它的元素由0或或1组成。组成。现在学习的是第37页,共61页 a=1 4 3 5 7 b=2 6 9 0 7 (1)c1=a=b (2)c2=a=b现在学习的是第38页,共61页 例例2-8 产生产生5阶随机方阵阶随机方阵A,其元素为,其元素为10,90区间的随区间的随机整数,然后判断机整数,然后判断A的元素是否能被的元素是否能被3整除。整除。(1)生成生成5阶随机方阵阶随机方阵A。A=fi
29、x(90-10+1)*rand(5)+10)(2)判断判断A的元素是否可以被的元素是否可以被3整除。整除。P=rem(A,3)=0其中,其中,rem(A,3)是矩阵是矩阵A的每个元素除以的每个元素除以3的余数矩的余数矩阵。此时,阵。此时,0被扩展为与被扩展为与A同维数的零矩阵,同维数的零矩阵,P是进行是进行等于等于(=)比较的结果矩阵。比较的结果矩阵。现在学习的是第39页,共61页2.3.3 逻辑运算逻辑运算 MATLAB提供了提供了3种逻辑运算符:与运算种逻辑运算符:与运算&(and)、或运算、或运算|(or)、非运算非运算(not)和异或运算和异或运算xor。逻辑运算的运算法则为:逻辑运算
30、的运算法则为:(1)在逻辑运算中,确认非零元素为真,用在逻辑运算中,确认非零元素为真,用1表示,零元素为假,表示,零元素为假,用用0表示。表示。(2)设参与逻辑运算的是两个标量设参与逻辑运算的是两个标量a和和b,那么,那么,a&b或或and(a,b)a,b全为非零时,运算结果为全为非零时,运算结果为1,否则为,否则为0。a|b或或or(a,b)a,b中只要有一个非零,运算结果为中只要有一个非零,运算结果为1。a或或not(a)当当a是零时,运算结果为是零时,运算结果为1;当;当a非零时,运算结果为非零时,运算结果为0。现在学习的是第40页,共61页 (3)若参与逻辑运算的是两个同维矩阵,那若参
31、与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由同维的矩阵,其元素由1或或0组成。组成。(4)若参与逻辑运算的一个是标量,一个是若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由是一个与矩阵同维的矩阵,其元素由1或或0组成。组成。现在学习的是第41页,共61页 (5)逻辑非是单
32、目运算符,也服从矩阵运算规则。逻辑非是单目运算符,也服从矩阵运算规则。(6)在算术、关系、逻辑运算中,算术运算优先级最在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。高,逻辑运算优先级最低。a=0 0 2 1;b=1 2 0 1;c1=a&b c2=a|b c3=a c4=xor(a,b)现在学习的是第42页,共61页 MATLAB/SIMULINK实用教程实用教程张化光张化光,刘鑫蕊刘鑫蕊,孙秋野孙秋野人民邮电出版社人民邮电出版社 现在学习的是第43页,共61页例例2-9(1)建立矩阵建立矩阵A,然后找出大于,然后找出大于4的元素的位置。的元素的位置。(1)建立矩阵建立矩阵
33、A。A=4,-65,-54,0,6;56,0,67,-45,0(2)找出大于找出大于4的元素的位置。的元素的位置。find(A4)例例2-9(2)t=linspace(0,3*pi,500);y=sin(t);subplot(1,3,1),plot(t,y),axis(0 10-1 1)z1=(t2*pi).*y;subplot(1,3,2),plot(t,z1),axis(0 10-1 1)w=(tpi/3&t7*pi/3&t=a&ch=z);%找小写字母的位置找小写字母的位置ch(k)=ch(k)-(a-A);%将小写字母变成相应的将小写字母变成相应的大写字母大写字母char(ch)len
34、gth(k)%统计小写字母的个数统计小写字母的个数现在学习的是第54页,共61页稀疏矩阵介绍v 稀疏矩阵q 对对于于一一个个 n 阶阶矩矩阵阵,通通常常需需要要 n2 的的存存储储空空间间,当当 n 很很大大时时,进进行矩阵运算时会占用大量的内存空间和运算时间。行矩阵运算时会占用大量的内存空间和运算时间。q Matlab支持稀疏矩阵,只存储矩阵的非零元素,这在矩阵的支持稀疏矩阵,只存储矩阵的非零元素,这在矩阵的存储空间和计算时间上都有很大的优点。存储空间和计算时间上都有很大的优点。q 在在许许多多实实际际问问题题中中遇遇到到的的大大规规模模矩矩阵阵中中通通常常含含有有大大量量0元元素素,这样的
35、矩阵称为这样的矩阵称为稀疏矩阵稀疏矩阵。q 稀稀疏疏矩矩阵阵及及其其算算法法,就就是是不不存存储储那那些些“0”元元素素,也也不不对对它它们们进进行行操操作作,从从而而节节省省内内存存空空间间和和计计算算时时间间;稀稀疏疏矩矩阵阵计计算算的的复复杂杂性性和和代代价价仅仅仅仅取决于稀疏矩阵的取决于稀疏矩阵的非零元素的个数非零元素的个数。现在学习的是第55页,共61页2.8 稀疏矩阵:稀疏矩阵:矩阵中通常只有很少的非零元素矩阵中通常只有很少的非零元素2.8.1 矩阵存储方式矩阵存储方式MATLAB的矩阵有两种存储方式:的矩阵有两种存储方式:完全存完全存储方式储方式和和稀疏存储稀疏存储方式。方式。1
36、完全存储方式完全存储方式完全存储方式是将矩阵的全部元素按列存储完全存储方式是将矩阵的全部元素按列存储。以前讲到的矩阵的存储方式都是按这个方。以前讲到的矩阵的存储方式都是按这个方式存储的,此存储方式对稀疏矩阵也适用,式存储的,此存储方式对稀疏矩阵也适用,但对计算机资源是一种很大的浪费。但对计算机资源是一种很大的浪费。现在学习的是第56页,共61页2稀疏存储方式稀疏存储方式稀疏存储方式仅存储矩阵所有的非零元素的稀疏存储方式仅存储矩阵所有的非零元素的值及其位置,即行号和列号。在值及其位置,即行号和列号。在MATLAB中,稀疏存储方式也是按列存储的。中,稀疏存储方式也是按列存储的。注意,在讲稀疏矩阵时
37、,有两个不同的概念注意,在讲稀疏矩阵时,有两个不同的概念,一是指矩阵的,一是指矩阵的0元素较多,该矩阵是一个元素较多,该矩阵是一个具有稀疏特征的矩阵,二是指采用稀疏方式具有稀疏特征的矩阵,二是指采用稀疏方式存储的矩阵。存储的矩阵。现在学习的是第57页,共61页稀疏矩阵介绍v 创建稀疏矩阵q 稀稀疏疏矩矩阵阵的的创创建建需需要要用用户户来来决决定定。用用户户需需要要判判断断在在矩矩阵阵中中是是否否有大量的零元素,是否需要采用稀疏存储技术。有大量的零元素,是否需要采用稀疏存储技术。q 矩阵的矩阵的密度密度定义为矩阵中非零元素的个数除以矩阵中总的元素个定义为矩阵中非零元素的个数除以矩阵中总的元素个数
38、。对于低密度的矩阵,采用稀疏方式存储是一种很好的选择。数。对于低密度的矩阵,采用稀疏方式存储是一种很好的选择。q 如如果果某某个个矩矩阵阵以以稀稀疏疏方方式式存存储储,则则它它参参与与运运算算的的结结果果也也将将以以稀稀疏疏方方式式存储,除非运算本身使稀疏性消失。存储,除非运算本身使稀疏性消失。现在学习的是第58页,共61页2.8.2 稀疏存储方式的产生稀疏存储方式的产生 函数函数S=sparse(A)将矩阵将矩阵S转化为稀疏存储方式的矩阵转化为稀疏存储方式的矩阵A。当矩阵。当矩阵S是稀疏存储方式是稀疏存储方式时,则函数调用相当于时,则函数调用相当于A=S。full(S):将稀疏存储矩阵将稀疏
39、存储矩阵A转化为完全存储方式矩阵。转化为完全存储方式矩阵。A=0 0 5 0;3 0 3 0;0 0 0 1;0 4 3 0S=sparse(A)whos 满矩阵与稀疏矩阵之间的转化满矩阵与稀疏矩阵之间的转化S=sparse(A)A=full(S)现在学习的是第59页,共61页sparse函数还有其他一些调用格式:函数还有其他一些调用格式:sparse(m,n):生成一个:生成一个mn的所有元素都是的所有元素都是0的稀疏矩阵。的稀疏矩阵。sparse(u,v,S):u,v,S是是3个等长的向量。个等长的向量。S是要建立的稀疏矩阵的是要建立的稀疏矩阵的非非0元素,元素,u(i)、v(i)分别是分
40、别是S(i)的行和列下标,该函数建立一个的行和列下标,该函数建立一个max(u)行、行、max(v)列并以列并以S为稀疏元素的稀疏矩阵。为稀疏元素的稀疏矩阵。现在学习的是第60页,共61页稀疏矩阵介绍q 直接创建稀疏矩阵直接创建稀疏矩阵例:例:S=sparse(i,j,s,m,n)其中其中i 和和j 分别是矩阵非零元素的分别是矩阵非零元素的行和列指标行和列指标向量,向量,s 是非零元素值是非零元素值向量,向量,m,n 分别是矩阵的行数和列数。分别是矩阵的行数和列数。S2=sparse(1 2 2 3 4 4,3 1 3 4 2 3,.5 3 3 1 4 3,4,4)现在学习的是第61页,共61页