书签 分享 收藏 举报 版权申诉 / 48
上传文档赚钱

类型第2章矩阵和数组2课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4500824
  • 上传时间:2022-12-15
  • 格式:PPT
  • 页数:48
  • 大小:181KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第2章矩阵和数组2课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    矩阵 数组 课件
    资源描述:

    1、2.1.1算术运算算术运算1.基本算术运算基本算术运算 MATLAB的基本算术运算有:的基本算术运算有:(加加)、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)。注意,运算是在矩阵意义下进行的,单个数据的算术注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。运算只是一种特例。MATLAB的矩阵运算的矩阵运算 假定有两个矩阵假定有两个矩阵A和和B,则可以由,则可以由A+B和和A-B实现矩实现矩阵的加减运算。运算规则是:若阵的加减运算。运算规则是:若A和和B矩阵的维数相同,矩阵的维数相同,则可以执行矩阵的加减运算,则可以执行矩阵的加减运算,A和和B矩阵的相应元素相矩

    2、阵的相应元素相加减。如果加减。如果A与与B的维数不相同,则的维数不相同,则MATLAB将给出将给出错误信息,提示用户两个矩阵的维数不匹配。错误信息,提示用户两个矩阵的维数不匹配。(1)矩阵加减运算矩阵加减运算 假定有两个矩阵假定有两个矩阵A和和B,若,若A为为mn矩阵,矩阵,B为为np矩阵,则矩阵,则C=A*B为为mp矩阵。矩阵。(2)矩阵乘法矩阵乘法 (3)矩阵除法矩阵除法在在MATLAB中,有两种矩阵除法运算:中,有两种矩阵除法运算:和和/,分别表示左,分别表示左除和右除。如果除和右除。如果A矩阵是非奇异方阵,则矩阵是非奇异方阵,则AB和和B/A运算可运算可以实现。以实现。AB等效于等效于

    3、A的逆左乘的逆左乘B矩阵,也就是矩阵,也就是inv(A)*B,而而B/A等效于等效于A矩阵的逆右乘矩阵的逆右乘B矩阵,也就是矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运算的结果相同,如对于含有标量的运算,两种除法运算的结果相同,如3/4和和43有相同的值,都等于有相同的值,都等于0.75。又如,设。又如,设a=10.5,25,则,则a/5=5a=2.1000 5.0000。对于矩阵来说,左除和右除表示。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般一般ABB/A。一个矩阵的乘方运算可以表示

    4、成一个矩阵的乘方运算可以表示成Ax,要求,要求A为方阵,为方阵,x为标量。为标量。2点运算点运算 在在MATLAB中,有一种特殊的运算,因为其运算符是中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符在有关算术运算符前面加点,所以叫点运算。点运算符有有.*、./、.和和.。两矩阵进行点运算是指它们的对应元素。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。进行相关运算,要求两矩阵的维参数相同。(4)矩阵的乘方矩阵的乘方 MATLAB提供了提供了6种关系运算符:种关系运算符:(小于小于)、(大于大于)、=(大于或等于大于或等于)、=(等于

    5、等于)、=(不等于不等于)。它们的含义不难理解,但要注意其书写方。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。法与数学中的不等式符号不尽相同。2.3.2 关系运算关系运算 (1)当两个比较量是标量时,直接比较两数的大小。若当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为关系成立,关系表达式结果为1,否则为,否则为0。(2)当参与比较的量是两个维数相同的矩阵时,比较是当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是

    6、一个维数并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由与原矩阵相同的矩阵,它的元素由0或或1组成。组成。关系运算符的运算法则为:关系运算符的运算法则为:(3)当参与比较的一个是标量,而另一个是矩阵时,当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由果是一个维数与原矩阵相同的矩阵,它的元素由0或或1组成。组成。例例2-8 产生产生5阶随机方阵阶随

    7、机方阵A,其元素为,其元素为10,90区间的随区间的随机整数,然后判断机整数,然后判断A的元素是否能被的元素是否能被3整除。整除。(1)生成生成5阶随机方阵阶随机方阵A。A=fix(90-10+1)*rand(5)+10)(2)判断判断A的元素是否可以被的元素是否可以被3整除。整除。P=rem(A,3)=0其中,其中,rem(A,3)是矩阵是矩阵A的每个元素除以的每个元素除以3的余数矩阵。的余数矩阵。此时,此时,0被扩展为与被扩展为与A同维数的零矩阵,同维数的零矩阵,P是进行等于是进行等于(=)比较的结果矩阵。比较的结果矩阵。MATLAB提供了提供了3种逻辑运算符:种逻辑运算符:&(与与)、|

    8、(或或)和和(非非)。逻辑运算的运算法则为:逻辑运算的运算法则为:(1)在逻辑运算中,确认非零元素为真,用在逻辑运算中,确认非零元素为真,用1表示,表示,零元素为假,用零元素为假,用0表示。表示。(2)设参与逻辑运算的是两个标量设参与逻辑运算的是两个标量a和和b,那么,那么,a&b a,b全为非零时,运算结果为全为非零时,运算结果为1,否则为,否则为0。a|b a,b中只要有一个非零,运算结果为中只要有一个非零,运算结果为1。a 当当a是零时,运算结果为是零时,运算结果为1;当;当a非零时,运算非零时,运算结果为结果为0。2.3.3 逻辑运算逻辑运算 (3)若参与逻辑运算的是两个同维矩阵,那么

    9、运算将对若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由算结果是一个与原矩阵同维的矩阵,其元素由1或或0组组成。成。(4)若参与逻辑运算的一个是标量,一个是矩阵,那若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由其元素由1或或0组成。组成。(5)逻辑非是单目运算符,也服从矩阵运算规则。

    10、逻辑非是单目运算符,也服从矩阵运算规则。(6)在算术、关系、逻辑运算中,算术运算优先级最高,在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。逻辑运算优先级最低。例例2-9 建立矩阵建立矩阵A,然后找出大于,然后找出大于4的元素的位置。的元素的位置。(1)建立矩阵建立矩阵A。A=4,-65,-54,0,6;56,0,67,-45,0(2)找出大于找出大于4的元素的位置。的元素的位置。find(A4)2.4.1 对角阵与三角阵对角阵与三角阵1对角阵对角阵只有对角线上有非只有对角线上有非0元素的矩阵称为对角矩阵,对角元素的矩阵称为对角矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,

    11、对角线上线上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都为的元素都为1的对角矩阵称为单位矩阵。的对角矩阵称为单位矩阵。2.4 矩阵分析矩阵分析(1)提取矩阵的对角线元素提取矩阵的对角线元素设设A为为mn矩阵,矩阵,diag(A)函数用于提取矩阵函数用于提取矩阵A主对角线元主对角线元素,产生一个具有素,产生一个具有min(m,n)个元素的列向量。个元素的列向量。diag(A)函数还有一种形式函数还有一种形式diag(A,k),其功能是提取第,其功能是提取第k条条对角线的元素。对角线的元素。(2)构造对角矩阵构造对角矩阵设设V为具有为具有m个元素的向量,个元素的向量,diag(V)将产生一个

    12、将产生一个mm对对角矩阵,其主对角线元素即为向量角矩阵,其主对角线元素即为向量V的元素。的元素。diag(V)函数也有另一种形式函数也有另一种形式diag(V,k),其功能是产生一个,其功能是产生一个nn(n=m+)对角阵,其第对角阵,其第k条对角线的元素即为向量条对角线的元素即为向量V的的元素。元素。例例2-10 先建立先建立55矩阵矩阵A,然后将,然后将A的第一行元素乘以的第一行元素乘以1,第二行乘以第二行乘以2,第五行乘以,第五行乘以5。A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;.11,18,25,2,19;D=diag(1

    13、:5);D*A%用用D左乘左乘A,对,对A的每行乘以一个指定的每行乘以一个指定常数常数 三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,即矩阵的对角线以下的元素全为三角阵,即矩阵的对角线以下的元素全为0的一种矩的一种矩阵,而下三角阵则是对角线以上的元素全为阵,而下三角阵则是对角线以上的元素全为0的一种的一种矩阵。矩阵。2三角阵三角阵(1)上三角矩阵上三角矩阵求矩阵求矩阵A的上三角阵的的上三角阵的MATLAB函数是函数是triu(A)。triu(A)函数也有另一种形式函数也有另一种形式triu(A,k),其功能是求矩,其功能是求矩阵阵A的第的第k条

    14、对角线以上的元素。例如,提取矩阵条对角线以上的元素。例如,提取矩阵A的的第第2条对角线以上的元素,形成新的矩阵条对角线以上的元素,形成新的矩阵B。(2)下三角矩阵下三角矩阵在在MATLAB中,提取矩阵中,提取矩阵A的下三角矩阵的函数是的下三角矩阵的函数是tril(A)和和tril(A,k),其用法与提取上三角矩阵的函数,其用法与提取上三角矩阵的函数triu(A)和和triu(A,k)完全相同。完全相同。1矩阵的转置矩阵的转置转置运算符是单撇号转置运算符是单撇号()。2矩阵的旋转矩阵的旋转利用函数利用函数rot90(A,k)将矩阵将矩阵A旋转旋转90的的k倍,当倍,当k为为1时时可省略。可省略。

    15、2.4.2 矩阵的转置与旋转矩阵的转置与旋转3矩阵的左右翻转矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,调换,第二列和倒数第二列调换,依次类推。,依次类推。MATLAB对矩阵对矩阵A实施左右翻转的函数是实施左右翻转的函数是fliplr(A)。4矩阵的上下翻转矩阵的上下翻转MATLAB对矩阵对矩阵A实施上下翻转的函数是实施上下翻转的函数是flipud(A)。1矩阵的逆矩阵的逆对于一个方阵对于一个方阵A,如果存在一个与其同阶的方阵,如果存在一个与其同阶的方阵B,使,使得:得:AB=BA=I(I为单位矩阵为单

    16、位矩阵)则称则称B为为A的逆矩阵,当然,的逆矩阵,当然,A也是也是B的逆矩阵。的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作,容易出错,求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在但在MATLAB中,求一个矩阵的逆非常容易。求方阵中,求一个矩阵的逆非常容易。求方阵A的逆矩阵可调用函数的逆矩阵可调用函数inv(A)。例例2-11 用求逆矩阵的方法解线性方程组。用求逆矩阵的方法解线性方程组。Ax=b其解为:其解为:x=A-1b2.4.3 矩阵的逆与伪逆矩阵的逆与伪逆 如果矩阵如果矩阵A不是一个方阵,或者不是一个方阵,或者A是一个非满秩的方是一个非满秩的方阵时,矩阵阵时,矩阵A没有逆矩阵,但可以

    17、找到一个与没有逆矩阵,但可以找到一个与A的转的转置矩阵置矩阵A同型的矩阵同型的矩阵B,使得:,使得:ABA=ABAB=B此时称矩阵此时称矩阵B为矩阵为矩阵A的伪逆,也称为广义逆矩阵。在的伪逆,也称为广义逆矩阵。在MATLAB中,求一个矩阵伪逆的函数是中,求一个矩阵伪逆的函数是pinv(A)。2矩阵的伪逆矩阵的伪逆 把一个方阵看作一个行列式,并对其按行列式的规把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在则求值,这个值就称为矩阵所对应的行列式的值。在MATLAB中,求方阵中,求方阵A所对应的行列式的值的函数是所对应的行列式的值的函数是det(A)。2.

    18、4.4 方阵的行列式方阵的行列式 1矩阵的秩矩阵的秩矩阵线性无关的行数与列数称为矩阵的秩。在矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是中,求矩阵秩的函数是rank(A)。2矩阵的迹矩阵的迹矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在特征值之和。在MATLAB中,求矩阵的迹的函数是中,求矩阵的迹的函数是trace(A)。2.4.5 矩阵的秩与迹矩阵的秩与迹 矩阵或向量的范数用来度量矩阵或向量在某种意矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范义下的长度。范数有多

    19、种方法定义,其定义不同,范数值也就不同。数值也就不同。2.4.6 向量和矩阵的范数向量和矩阵的范数1向量的向量的3种常用范数及其计算函数种常用范数及其计算函数在在MATLAB中,求向量范数的函数为:中,求向量范数的函数为:(1)norm(V)或或norm(V,2):计算向量:计算向量V的的2范数。范数。(2)norm(V,1):计算向量:计算向量V的的1范数。范数。(3)norm(V,inf):计算向量:计算向量V的的范数。范数。MATLAB提供了求提供了求3种矩阵范数的函数,其函数调用种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同。格式与求向量的范数的函数完全相同。2.4.7

    20、矩阵的条件数矩阵的条件数在在MATLAB中,计算矩阵中,计算矩阵A的的3种条件数的函数是:种条件数的函数是:(1)cond(A,1)计算计算A的的1范数下的条件数。范数下的条件数。(2)cond(A)或或cond(A,2)计算计算A的的2范数数下的条件数。范数数下的条件数。(3)cond(A,inf)计算计算A的的 范数下的条件数。范数下的条件数。2矩阵的范数及其计算函数矩阵的范数及其计算函数 在在MATLAB中,计算矩阵中,计算矩阵A的特征值和特征向量的函的特征值和特征向量的函数是数是eig(A),常用的调用格式有,常用的调用格式有3种:种:(1)E=eig(A):求矩阵:求矩阵A的全部特征

    21、值,构成向量的全部特征值,构成向量E。(2)V,D=eig(A):求矩阵:求矩阵A的全部特征值,构成对角的全部特征值,构成对角阵阵D,并求,并求A的特征向量构成的特征向量构成V的列向量。的列向量。2.4.8 矩阵的特征值与特征向量矩阵的特征值与特征向量(3)V,D=eig(A,nobalance):与第:与第2种格式类似,但第种格式类似,但第2种格式中先对种格式中先对A作相似变换后求矩阵作相似变换后求矩阵A的特征值和特的特征值和特征向量,而格式征向量,而格式3直接求矩阵直接求矩阵A的特征值和特征向量。的特征值和特征向量。例例2-12 用求特征值的方法解方程。用求特征值的方法解方程。3x5-7x

    22、4+5x2+2x-18=0p=3,-7,0,5,2,-18;A=compan(p);%A的伴随矩阵的伴随矩阵x1=eig(A)%求求A的特征值的特征值x2=roots(p)%直接求多项式直接求多项式p的零点的零点 1矩阵平方根矩阵平方根sqrtmsqrtm(A)计算矩阵计算矩阵A的平方根。的平方根。2矩阵对数矩阵对数logmlogm(A)计算矩阵计算矩阵A的自然对数。此函数输入参数的条的自然对数。此函数输入参数的条件与输出结果间的关系和函数件与输出结果间的关系和函数sqrtm(A)完全一样完全一样2.5 矩阵的超越函数矩阵的超越函数 exam、expm1、expm2、expm3、expm(A)

    23、、expm1(A)、expm2(A)、expm3(A)的功能都求矩阵指的功能都求矩阵指数数eA。4普通矩阵函数普通矩阵函数funmfunm(A,fun)用来计算直接作用于矩阵用来计算直接作用于矩阵A的由的由fun指定的超越函数值。当指定的超越函数值。当fun取取sqrt时,时,funm(A,sqrt)可以计算矩阵可以计算矩阵A的平方根,与的平方根,与sqrtm(A)的计算结果一的计算结果一样。样。3矩阵指数矩阵指数 在在MATLAB中,字符串是用单撇号括起来的字符序中,字符串是用单撇号括起来的字符序列。列。MATLAB将字符串当作一个行向量,每个元素对应一将字符串当作一个行向量,每个元素对应一

    24、个字符,其标识方法和数值向量相同。也可以建立多个字符,其标识方法和数值向量相同。也可以建立多行字符串矩阵。行字符串矩阵。2.6 字符串字符串字符串是以字符串是以ASCII码形式存储的。码形式存储的。abs和和double函数都可函数都可以用来获取字符串矩阵所对应的以用来获取字符串矩阵所对应的ASCII码数值矩阵。码数值矩阵。相反,相反,char函数可以把函数可以把ASCII码矩阵转换为字符串矩码矩阵转换为字符串矩阵。阵。例例2-13 建立一个字符串向量,然后对该向量做如下处理:建立一个字符串向量,然后对该向量做如下处理:(1)取第取第15个字符组成的子字符串。个字符组成的子字符串。(2)将字符

    25、串倒过来重新排列。将字符串倒过来重新排列。(3)将字符串中的小写字母变成相应的大写字母,其余将字符串中的小写字母变成相应的大写字母,其余字符不变。字符不变。(4)统计字符串中小写字母的个数。统计字符串中小写字母的个数。命令如下:命令如下:ch=ABc123d4e56Fg9;subch=ch(1:5)%取子字符串取子字符串revch=ch(end:-1:1)%将字符串倒排将字符串倒排k=find(ch=a&ch=z);%找小写字母的位置找小写字母的位置ch(k)=ch(k)-(a-A);%将小写字母变成相应的大将小写字母变成相应的大写字母写字母char(ch)length(k)%统计小写字母的个

    26、数统计小写字母的个数与字符串有关的另一个重要函数是与字符串有关的另一个重要函数是eval,其调用格式为:,其调用格式为:eval(t)其中其中t为字符串。它的作用是把字符串的内容作为对应的为字符串。它的作用是把字符串的内容作为对应的MATLAB语句来执行。语句来执行。2.7.1 结构数据结构数据1结构矩阵的建立与引用结构矩阵的建立与引用结构矩阵的元素可以是不同的数据类型,它能将一组具有结构矩阵的元素可以是不同的数据类型,它能将一组具有不同属性的数据纳入到一个统一的变量名下进行管理。建不同属性的数据纳入到一个统一的变量名下进行管理。建立一个结构矩阵可采用给结构成员赋值的办法。具体格式立一个结构矩

    27、阵可采用给结构成员赋值的办法。具体格式为:为:结构矩阵名结构矩阵名.成员名成员名=表达式表达式其中表达式应理解为矩阵表达式。其中表达式应理解为矩阵表达式。2.7 结构数据和单元数据结构数据和单元数据 可以根据需要增加或删除结构的成员。例如要给结构矩可以根据需要增加或删除结构的成员。例如要给结构矩阵阵a增加一个成员增加一个成员x4,可给,可给a中任意一个元素增加成员中任意一个元素增加成员x4:a(1).x4=410075;但其他成员均为空矩阵,可以使用赋值语句给它赋确定的但其他成员均为空矩阵,可以使用赋值语句给它赋确定的值。值。要删除结构的成员,则可以使用要删除结构的成员,则可以使用rmfiel

    28、d函数来完成。例如,函数来完成。例如,删除成员删除成员x4:a=rmfield(a,x4);3关于结构的函数关于结构的函数除了一般的结构数据的操作外,除了一般的结构数据的操作外,MATLAB还提供了部分还提供了部分函数来进行结构矩阵的操作。函数来进行结构矩阵的操作。2结构成员的修改结构成员的修改1单元矩阵的建立与引用单元矩阵的建立与引用建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。起来。可以用带有大括号下标的形式引用单元矩阵元素。例如可以用带有大括号下标的形式引用单元矩阵元素。例如b3,3。单元矩阵的元素可以是结构或单元数据。单元矩阵

    29、的元素可以是结构或单元数据。可以使用可以使用celldisp函数来显示整个单元矩阵,如函数来显示整个单元矩阵,如celldisp(b)。还可以删除单元矩阵中的某个元素。还可以删除单元矩阵中的某个元素。2关于单元的函数关于单元的函数MATLAB还提供了部分函数用于单元的操作。还提供了部分函数用于单元的操作。2.7.2 单元数据单元数据2.8.1 矩阵存储方式矩阵存储方式MATLAB的矩阵有两种存储方式:完全存储方式和稀的矩阵有两种存储方式:完全存储方式和稀疏存储方式。疏存储方式。1完全存储方式完全存储方式完全存储方式是将矩阵的全部元素按列存储。以前讲完全存储方式是将矩阵的全部元素按列存储。以前讲

    30、到的矩阵的存储方式都是按这个方式存储的,此存储到的矩阵的存储方式都是按这个方式存储的,此存储方式对稀疏矩阵也适用。方式对稀疏矩阵也适用。2.8 稀疏矩阵稀疏矩阵 稀疏存储方式仅存储矩阵所有的非零元素的值及稀疏存储方式仅存储矩阵所有的非零元素的值及其位置,即行号和列号。在其位置,即行号和列号。在MATLAB中,稀疏存储方中,稀疏存储方式也是按列存储的。式也是按列存储的。注意,在讲稀疏矩阵时,有两个不同的概念,一是指注意,在讲稀疏矩阵时,有两个不同的概念,一是指矩阵的矩阵的0元素较多,该矩阵是一个具有稀疏特征的矩元素较多,该矩阵是一个具有稀疏特征的矩阵,二是指采用稀疏方式存储的矩阵。阵,二是指采用

    31、稀疏方式存储的矩阵。2稀疏存储方式稀疏存储方式1将完全存储方式转化为稀疏存储方式将完全存储方式转化为稀疏存储方式函数函数A=sparse(S)将矩阵将矩阵S转化为稀疏存储方式的矩阵转化为稀疏存储方式的矩阵A。当矩阵。当矩阵S是稀疏存储方式时,则函数调用相当于是稀疏存储方式时,则函数调用相当于A=S。sparse函数还有其他一些调用格式:函数还有其他一些调用格式:sparse(m,n):生成一个:生成一个mn的所有元素都是的所有元素都是0的稀疏矩阵。的稀疏矩阵。sparse(u,v,S)-:u,v,S是是3个等长的向量。个等长的向量。S是要建立的稀疏矩阵是要建立的稀疏矩阵的非的非0元素,元素,u

    32、(i)、v(i)分别是分别是S(i)的行和列下标,该函数建立一的行和列下标,该函数建立一个个max(u)行、行、max(v)列并以列并以S为稀疏元素的稀疏矩阵。为稀疏元素的稀疏矩阵。此外,还有一些和稀疏矩阵操作有关的函数。例如此外,还有一些和稀疏矩阵操作有关的函数。例如u,v,S=find(A):返回矩阵:返回矩阵A中非中非0元素的下标和元素。这里产元素的下标和元素。这里产生的生的u,v,S可作为可作为sparse(u,v,S)的参数。的参数。full(A):返回和稀疏存储矩阵:返回和稀疏存储矩阵A对应的完全存储方式矩阵。对应的完全存储方式矩阵。2.8.2 稀疏存储方式的产生稀疏存储方式的产生

    33、 只把要建立的稀疏矩阵的非只把要建立的稀疏矩阵的非0元素及其所在行和列的位置表元素及其所在行和列的位置表示出来后由示出来后由MATLAB自己产生其稀疏存储,这需要使用自己产生其稀疏存储,这需要使用spconvert函数。调用格式为:函数。调用格式为:B=spconvert(A)其中其中A为一个为一个m3或或m4的矩阵,其每行表示一个非的矩阵,其每行表示一个非0元素,元素,m是非是非0元素的个数,元素的个数,A每个元素的意义是:每个元素的意义是:(i,1)第第i个非个非0元素所在的行。元素所在的行。(i,2)第第i个非个非0元素所在的列。元素所在的列。(i,3)第第i个非个非0元素值的实部。元素

    34、值的实部。(i,4)第第i个非个非0元素值的虚部,若矩阵的全部元素都是实数,元素值的虚部,若矩阵的全部元素都是实数,则无须第四列。则无须第四列。该函数将该函数将A所描述的一个稀疏矩阵转化为一个稀疏存储矩阵。所描述的一个稀疏矩阵转化为一个稀疏存储矩阵。2产生稀疏存储矩阵产生稀疏存储矩阵例例2-15 根据表示稀疏矩阵的矩阵根据表示稀疏矩阵的矩阵A,产生一个稀疏存储,产生一个稀疏存储方式矩阵方式矩阵B。命令如下:命令如下:A=2,2,1;3,1,-1;4,3,3;5,3,8;6,6,12;B=spconvert(A)用用spdiags函数产生带状稀疏矩阵的稀疏存储,调用函数产生带状稀疏矩阵的稀疏存储

    35、,调用格式是:格式是:A=spdiags(B,d,m,n)其中,参数其中,参数m,n为原带状矩阵的行数与列数。为原带状矩阵的行数与列数。B为为rp阶矩阵,这里阶矩阵,这里r=min(m,n),p为原带状矩阵所有非零为原带状矩阵所有非零对角线的条数,矩阵对角线的条数,矩阵B的第的第i列即为原带状矩阵的第列即为原带状矩阵的第i条条非零对角线。非零对角线。3带状稀疏存储矩阵带状稀疏存储矩阵 单位矩阵只有对角线元素为单位矩阵只有对角线元素为1,其他元素都为,其他元素都为0,是,是一种具有稀疏特征的矩阵。函数一种具有稀疏特征的矩阵。函数eye产生一个完全存储产生一个完全存储方式的单位矩阵。方式的单位矩阵

    36、。MATLAB还有一个产生稀疏存储方还有一个产生稀疏存储方式的单位矩阵的函数,这就是式的单位矩阵的函数,这就是speye。函数。函数speye(m,n)返回一个返回一个mn的稀疏存储单位矩阵。的稀疏存储单位矩阵。4单位矩阵的稀疏存储单位矩阵的稀疏存储 稀疏存储矩阵只是矩阵的存储方式不同,它的运算稀疏存储矩阵只是矩阵的存储方式不同,它的运算规则与普通矩阵是一样的。所以,在运算过程中,稀规则与普通矩阵是一样的。所以,在运算过程中,稀疏存储矩阵可以直接参与运算。当参与运算的对象不疏存储矩阵可以直接参与运算。当参与运算的对象不全是稀疏存储矩阵时,所得结果一般是完全存储形式。全是稀疏存储矩阵时,所得结果一般是完全存储形式。2.8.3 稀疏矩阵应用举例稀疏矩阵应用举例

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第2章矩阵和数组2课件.ppt
    链接地址:https://www.163wenku.com/p-4500824.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库