MATLAB如何使用nzmax函数计算矩阵非零元素所占空间
【语法说明】
n=nzmax(S):n 返回系统为矩阵中的非零元素分配的内存空间大小,如果S是稀疏矩阵,则返回非零元素所占内存大小;如果S是满矩阵,则返回nzmax(S)=prod(size(S)),即满矩阵中每个元素都占内存。
【功能介绍】计算系统为稀疏矩阵分配的内存单元大小。
【实例】将满矩阵转化为稀疏矩阵,并分别计算所占的内存空间大小。
>> a=[0,0,0,1,0;2,0,3,0,4;0,0,2,0,0] % 定义满矩阵a
a =
0 0 0 1 0
2 0 3 0 4
0 0 2 0 0
>> nzmax(a) % a所占的内存空间
ans =
15
>> b=sparse(a) % 将a转为稀疏矩阵b
b =
(2,1) 2
(2,3) 3
(3,3) 2
(1,4) 1
(2,5) 4
>> nzmax(b) % 稀疏矩阵b所占的内存空间
ans =
5
【实例讲解】本例中,满矩阵转为稀疏矩阵后,存储空间变为原来的 1/3。将零元素多的满矩阵转化为稀疏矩阵,可以节约内存空间。