matlab稀疏矩阵存储.doc_第1页
matlab稀疏矩阵存储.doc_第2页
matlab稀疏矩阵存储.doc_第3页
matlab稀疏矩阵存储.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

matlab稀疏矩阵存储在做detrend时,碰到了稀疏矩阵的问题,以前学习时没有好好搞懂,模模糊糊的,在论坛上搜了一下相关的内容不多的,呵呵,所以翻出了大二的教材,感觉介绍的还是很详细的,分享一下:1.1.1矩阵存储方式MATLAB的矩阵有两种存储方式,完全存储方式和稀疏存储方式1.完全存储方式将矩阵的全部元素按列存储,矩阵中的全部零元素也存储到矩阵中。2.稀疏存储方式仅存储矩阵所有的非零元素的值及其位置,即行号和列号,显然这对于具有大量零元素的稀疏矩阵来说是十分有效的。设 1 0 0 0A= 0 5 0 0 2 0 0 7是具有稀疏矩阵特征的矩阵,其完全存储方式是按列存储的全部12个元素1,0,2,0,5,0,0,0,0,0,0,7其稀疏存储方式如下:(1,1),1,(3,1),2,(2,2),5,(3,4),7括号内为元素的行列位置,后面为元素值。当矩阵非常的“稀疏”时,会有效的节省存储空间。1.1.2稀疏存储方式的产生1.将完全存储方式转化为稀疏存储方式A=sparse(S);将S矩阵转换为稀疏矩阵A;sparse(m,n);产生m*n的所有元素都为0的稀疏矩阵sparse(u,v,S);S为建立系数矩阵的非零元素,u(i),v(i)分别为S(i)的行和列下标,S,u,v为等长向量。u,v,S=find(A);返回矩阵A中非零元素的下标和元素,返回值可以作为sparse(u,v,S);的参数full(A);返回和稀疏存储方式A对应的完全存储方式。例如X=2,0,0,0,0;0,0,0,0,0;0,0,0,5,0;0,1,0,0,-1;0,0,0,0,-5A=sparse(X)A= (1,1) 2 (4,2) 1 (3,4) 5 (4,5) -1 (5,5) -5A就是X的稀疏存储方式。2.产生稀疏存储矩阵sparse可以讲完全存储方式转换为稀疏存储方式,那么,当使用稀疏矩阵时,要先产生完全存储方式的矩阵,然后再转换,这显然是不可取的,MATLAB有自己产生稀疏矩阵的函数spconvert:B=spconvert(A);A为一个m*3或m*4的矩阵,A的每一列的意义分别为:(i,1)第i非零元素所在行(i,2)第i非零元素所在列(i,3)第i非零元素的实部(i,4)第i非零元素的虚部3.带状稀疏存储矩阵举个例子:是一个具有稀疏性质的带状矩阵。首先,找出矩阵的特征数据:B为三条对角线元素,d为对角线号,-3为主对角线下第三条,0为主对角线,3为主对角线上第三条。可以利用spdiags产生稀疏矩阵A=spdiags(B,d,5,6);也就是spdiags的调用格式A=spdiags(B,d,m,n);B为r*p阶矩阵,r=min(m,n),p为原带状矩阵中所有非零对角线的条数,B的第i列即为原带状矩阵的第i条非零对角线。spdiags的其他调用格式:B.d=spdiags(A);从原带状矩阵提取全部对角线元素赋给B并把对角线位置赋给d;B=spdiags(A,d);从带状矩阵中提取由d指定的非零对角线元素构成的矩阵;E=spdiags

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论