matlab sparse,

一、sparse()的稀疏矩阵简单运用

1.>> A = [0, 0, 0, 0;

0, 0, 1, 0;

0, 0, 0, 0;

0, 1, 0, 2];

>> sparse(A)

ans =

(4,2) 1

(2,3) 1

(4,4) 2

二.S = sparse(i,j,s,m,n,nzmax)

由向量i,j,s 生成一个m*n,且最多含有nzmax个元素的稀疏矩阵。

sparse([1,2,3,4],[1,2,3,4],[0,0,1,1],5,5,6)

ans =

(3,3) 1

(4,4) 1

其中i=[1,2,3,4],对应要形成矩阵的行位置;

J=[1,2,3,4],对应要形成矩阵的列位置;

S=[0,0,1,1],对应要形成矩阵对应位置的值。

(i 和j 的位置为一一对应,即(1,1)(2,2)(3,3)(4,4),将s中的值赋给这四个坐标的位置。

若i=[2,1,3,4],j=[3,2,4,1],则形成的坐标为(2,3)(1,2)(3,4),(4,1) )

(m>=max(i),n>=max(j) , m和n的值可以在满足条件的范围内任意选取. nzmax>=max(i or j))

下面为一些简化的情况

三.S = sparse(i,j,s,m,n)

  用 nzmax = length(s) ;

四.S = sparse(i,j,s)

使m = max(i) 和 n = max(j),在s中零元素被移除前计算最大值,[i j s]中其中一行可能为[m n 0];

5.S = sparse(m,n)

sparse([],[],[],m,n,0)的缩写,生成一个m*n的所有元素都是0的稀疏矩阵。

参考文献