sparse函数提供多种参数形式
1 S = sparse(X)
2 S = sparse(i,j,s,m,n,nzmax)
3 S = sparse(i,j,s,m,n) where nzmax = length(s).
4 S = sparse(i,j,s) where m = max(i) and n = max(j).
5 S = sparse(m,n) abbreviates sparse([ ],[ ],[ ],m,n,0).
形式1:S = sparse(X)
返回矩阵x的稀疏矩阵形式,所谓稀疏矩阵就是将所有0元素剔除,只保留非0元素。
比如 x =
1 0 3
0 1 0
那么sparse(x)=
(1,1) 1
(2,2) 1
(1,3) 3
可以看到返回的稀疏矩阵给出了所有非0元素的索引,剔除了所有0元素。如果x本身就是稀疏矩阵,那么返回其本身。
形式2:S = sparse(i,j,s,m,n,nzmax)
参数 i,j,s 是3个向量,而且长度必须相等;i是行索引,j是列索引,s是i j索引位置对应的元素值。m和n指定生成的矩阵的维数,nzmax指定为非0元素分配的空间,如果nzmax<length(i),执行该语句会出错。
比如
i =
1 2 3
j =
1 2 2
s =
2 2 0
m=n=3;nzmax=3;
那么 answ=sparse(i,j,s,m,n,nzmax)
answ =
(1,1) 2
(2,2) 2
利用full函数将answ转换成非稀疏矩阵,得到
full(answ)
ans =
2 0 0
0 2 0
0 0 0
形式3:S = sparse(i,j,s,m,n) where nzmax = length(s).
与形式2一样,就是略去了nzmax参数,默认为length(s)。
形式4:S = sparse(i,j,s) where m = max(i) and n = max(j).
与形式2一样,就是默认了m,n,nzmax的值
形式5:S = sparse(m,n) abbreviates sparse([ ],[ ],[ ],m,n,0).
创建全0的稀疏矩阵。