登录论坛

查看完整版本 : [MATLAB基础] 急,求助!求助!对issparse的一点疑问


yanwencaihao
2010-09-08, 14:11
issparse 判断是否为稀疏矩阵。

不知这个函数是以什么依据判断的?稀疏矩阵是指N<<m*n,所以N/(m*n)有个界限吧。例如0.05 or 0.1


一个15*15, 40个非零元素。N/(m*n)=0.1778

>> issparse(A)
ans =
1


然而另一个矩阵125*125, 642个非零元素。N/(m*n)=0.0411。

>> issparse(A)
ans =
0


甚至于一个10*10,非零元素为1。N/(m*n)=0.01

>> issparse(A)
ans =
0


这是怎么回事呢?哪位达人帮忙解答一下啊...急用啊,谢谢!!!!!

text数据如下

yisanming
2010-09-12, 18:19
如果在矩阵中,多数的元素为0,称此矩阵为稀疏矩阵(sparse matrix)。在MATLAB中,对于一个矩阵是否是稀疏矩阵,不是看矩阵含零元素个数,而是矩阵的存储方式。稀疏矩阵对其中的非零元素以三元组节点(行,列,值)的方式存储,而full matrix,也就是非稀疏矩阵则对所有的元素值以及对应行列数进行存储。详细的解释可以参看百度之稀疏矩阵。