收藏 分销(赏)

matlab稀疏矩阵存储.doc

上传人:仙人****88 文档编号:8688726 上传时间:2025-02-25 格式:DOC 页数:4 大小:14.89KB 下载积分:10 金币
下载 相关 举报
matlab稀疏矩阵存储.doc_第1页
第1页 / 共4页
matlab稀疏矩阵存储.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
matlab稀疏矩阵存储 在做detrend时,碰到了稀疏矩阵的问题,以前学习时没有好好搞懂,模模糊糊的,在论坛上搜了一下相关的内容不多的,呵呵,所以翻出了大二的教材,感觉介绍的还是很详细的,分享一下: 1.1.1矩阵存储方式 MATLAB的矩阵有两种存储方式,完全存储方式和稀疏存储方式 1.完全存储方式 将矩阵的全部元素按列存储,矩阵中的全部零元素也存储到矩阵中。 2.稀疏存储方式 仅存储矩阵所有的非零元素的值及其位置,即行号和列号,显然这对于具有大量零元素的稀疏矩阵来说是十分有效的。 设    1 0 0 0 A=   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,-5] A=sparse(X) A=     (1,1) 2     (4,2) 1     (3,4) 5     (4,5) -1     (5,5) -5 A就是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(B,d,A);将A中d指定的对角线元素由B代替构成新矩阵E。 4.单位矩阵的稀疏矩阵 speye(m,n);产生m*n的稀疏存储单位阵。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服