来源:《Matlab宝典》陈杰 电子工业出版社
1. 稀疏矩阵:
满矩阵存储:存储所有元素,占用空间较大。
稀疏矩阵:大部分矩阵元素为0;用一种占用空间较小的方法来存储;
假设mxn矩阵中,有nnz个非零元素,则存储在长度为nz max的矩阵中:
第一个矩阵用于存所有的非零元素(长度为nz max)
第二个矩阵用于存所有非零元素的行指标(长度为nzmax)
第三个矩阵用于存每一列开始处的指针,和一个标志着这三个矩阵结束的指针(矩阵长度为n+1)
下面是例子:
C =
2 0 1 0
0 2 0 1
1 0 2 0
0 1 0 2
>> B = sparse(C)
B =
(1,1) 2
(3,1) 1
(2,2) 2
(4,2) 1
(1,3) 1
(3,3) 2
(2,4) 1
(4,4) 2
命令:
sparse(A) %将A用稀疏矩阵方式来存储; full(A) %改为满矩阵方式存储;
nnz(A) %查看非零元素个数;
nonzeros(A) %返回非零元素数值;
nzmax(A) %返回存储非零元素的空间长度;<