一般有两个命令可以用来创建稀疏矩阵:
1. sparse(较常用)
2. spdiags(主要用于非零元素都是对角线元素的情况)
sparse。使用格式如下
A = sparse( i,j,,s,m,n,nzmax )
其实matlab函数sparse的文档中说的比较明白:
S = sparse(i,j,s,m,n,nzmax) uses vectors i, j, and s to generate an m-by-n sparse matrix such that S(i(k),j(k)) = s(k), with space allocated for nzmax nonzeros. Vectors i, j, and s are all the same length.
主要意思:i, j, s都是向量,i,j分别为非零元素的行下标和列下标构成的列向量,i(k)和j(k)作为两个下标标记非零元素在矩阵中的位置,这个位置上的元素值为s(k).
比如要构造的系数矩阵A中A(3,5)=7,而7是A中第10个非零元素(第几个元素是按列来数的),则i(10)=3,j(10)=5,s(10)=7
构造举例:
i=[1 3 1 2 1 4];j=[1 1 2 2 3 4];s = [1 2 3 4 5 6];
>> sparse(i,j,s)
ans =
(1,1) 1
(3,1) 2
(1,2) 3
(2,2) 4
(1,3) 5
(4,4)