MATLAB如何使用sparse函数生成稀疏矩阵
【语法说明】
S=sparse(A):函数将矩阵A转化为稀疏矩阵。如果A本身就是稀疏矩阵,函数返回A本身。
S=sparse(i,j,s,m,n,nzmax):函数用向量i、j和s生成一个m×n的含有nzmax个非零元素的稀疏矩阵。向量i、j和s的长度是相同的,满足 S(i(k),j(k))=s(k)。向量 s 中的零元素将被忽略,对于重复的(i,j),对应的向量s中的值相加作为(i,j)位置的元素值。
S=sparse(i,j,s,m,n):使用nzmax = length(s)。
S=sparse(i,j,s):使用m=max(i),n=max(j)。
S=sparse(m,n):相当于sparse([],[],[],m,n,0),生成一个元素均为零的m*n稀疏矩阵。
【功能介绍】生成稀疏矩阵。
【实例】用sparse函数创建和转换稀疏矩阵。
>> a=[0,0,0,2,0;3,0,0,0,1;0,0,0,5,0] % 满矩阵
a =
0 0 0 2 0
3 0 0 0 1
0 0 0 5 0
>> sa=sparse(a) % 将a转为稀疏矩阵
sa =
(2,1) 3
(1,4) 2
(3,4) 5
(2,5) 1
>> bs=sparse([2,1,3,2],[1,4,4,5],[3,2,5,1]) % 创建稀疏矩阵
bs =
(2,1) 3
(1,4) 2
(3,4) 5
(2,5) 1
【实例讲解】稀疏矩阵只存储非零元素的位置和值,当矩阵中零元素占多数时可以明显节约存储空间。