Matlab:检查零稀疏矩阵的命令?
我需要一个命令来检查零稀疏矩阵,isempty(..)不起作用。是否有一些稀疏版本的isempty(…) 试一试 或 编辑: Mohsen Nostratinia指出,Matlab:检查零稀疏矩阵的命令?,matlab,sparse-matrix,Matlab,Sparse Matrix,我需要一个命令来检查零稀疏矩阵,isempty(..)不起作用。是否有一些稀疏版本的isempty(…) 试一试 或 编辑: Mohsen Nostratinia指出,isempty(find(mlf2),1)效率更高,因为find命令要么返回长度为1的矩阵,要么返回空矩阵 或 编辑: Mohsen Nostratinia指出,isempty(find(mlf2),1)更有效,因为find命令将返回长度为1的矩阵,或者返回一个空矩阵。请注意,这不是稀疏性问题isempty(0)也将计算为fals
isempty(find(mlf2),1)
效率更高,因为find
命令要么返回长度为1的矩阵,要么返回空矩阵
或
编辑:
Mohsen Nostratinia指出,
isempty(find(mlf2),1)
更有效,因为find
命令将返回长度为1的矩阵,或者返回一个空矩阵。请注意,这不是稀疏性问题isempty(0)
也将计算为false
,因为零不是空的。通常,您可以使用any
或nnz
来确定是否存在非零。nnz
、非零
、nzmax
等都在。有几个有用的辅助函数。值得一看。注意,这不是一个稀疏的问题isempty(0)
也将计算为false
,因为零不是空的。通常,您可以使用any
或nnz
来确定是否存在非零。nnz
、非零
、nzmax
等都在。有几个有用的辅助函数。值得一看。一个好答案+1。对于第二个解决方案,isempty(find(mlf2,1))
似乎更有效。+1是一个不错的答案。对于第二种解决方案,isempty(find(mlf2,1))
似乎更有效。
>> mlf2=sparse([],[],[],2^31+1,1)
mlf2 =
All zero sparse: 2147483649-by-1
>> isempty(mlf2)
ans =
0 % I waited for 1 here with the zero sparse matrix...
~nnz(mlf2)
isempty(find(mlf2))