我需要一個命令來檢查零稀疏矩陣,isempty(..)不起作用。是否有一些isempty(..)的稀疏版本?Matlab:檢查零稀疏矩陣的命令?
>> 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...
我需要一個命令來檢查零稀疏矩陣,isempty(..)不起作用。是否有一些isempty(..)的稀疏版本?Matlab:檢查零稀疏矩陣的命令?
>> 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))
編輯:
穆赫辛Nosratinia指出,isempty(find(mlf2), 1)
更有效,因爲它的find
命令或者返回A M長度爲1的矩陣或空矩陣
我覺得〜nnz(mlf2)會這樣做,謝謝! +1 – hhh
沒問題,很高興它的作品:) –
+1一個很好的答案。對於第二種解決方案,'isempty(find(mlf2,1))'似乎更有效率。 –
請注意,它不是稀疏問題。 'isempty(0)'也會評估爲'false',因爲零不是空的。通常你可以使用'any'或'nnz'來確定是否有非標記。 –
'nnz','nonzeros','nzmax'等都在['sparse'文檔頁面]的另請參見部分(http://www.mathworks.com/help/matlab/ref/sparse。 HTML)。有幾個有用的伴侶功能。值得一看IMO。 – chappjc