MATLAB稀疏矩阵生成与储存

完全存储方式

完全存储方式是将矩阵的全部元素按列存储。

稀疏存储方式

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

1.sparse(S)
A=[0 0 1 0; 0 2 0 0; 3 0 0 0;  0 0 4 0]
S=sparse(A)
S=
(3,1)	3
(2,2)	2
(1,3)	1
(4,3) 	4

sparse(m,n):生成一个m*n的所有元素都是0的稀疏矩阵
sparse(u,v,s,m,n) u,v,s是三个等长的向量
s是要建立的系数矩阵的非0元素
u(i),v(i)是s(i)的行和列标
m,n是矩阵的行和列数,当m,n未被指定时,该函数建立一个max(u)行、max(v)列并以s为稀疏元素的稀疏矩阵
还有一些和稀疏矩阵操作有关的函数。例如[u,v,s]=find(A):返回矩阵A中非0元素及下标。产生的u,v,s可作为sparse(u,v,s)的参数。full(A):返回和稀疏存储矩阵A对应的完全存储方式矩阵

>>B=sparse([1:2:10],[1:2:10],[2:2:10])
B =
   (1,1)        2
   (3,3)        4
   (5,5)        6
   (7,7)        8
   (9,9)       10

>> [u,v,S]=find(B)
>>  full(B)

特殊稀疏矩阵

单位矩阵只有对角线元素为1,其他元素都是0,是一种具有稀疏特征的矩阵。
函数eye产生一个完全存储方式的单位矩阵。
函数speye(m,n)返回一个m×n的稀疏存储方式的单位矩阵。若m=n可简写为speye(n)。
spones(S):把矩阵S的非零元素值改为1。
sprand:产生非零元素为均匀分布的随机数的稀疏矩阵 。

注:稀疏存储矩阵只是矩阵的存储方式不同,它的运算规则与普通矩阵是一样的。所以,在运算过程中,稀疏存储矩阵可以直接参与运算。当参与运算的对象不全是稀疏存储矩阵时,所得结果一般是完全存储形式。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值