2017-09-06 32 views
1

我有混行查找零的指數或幾乎爲零行

A = [[1.1 2.2 3.0]; [0.00000009 0 0]; [0 0 0]; [1 2 3]]; 

我想找到A.所有零行的指數從link我已經嘗試了N×M的矩陣

find(all(A==0,2)) 

和我能夠得到第三行的索引,即[0 0 0]但不是第2行,這也幾乎爲零。我怎麼能找到所有這些行都是零或幾乎非常接近零。

我已經使用下面的解決方法,但我不認爲它是解決此問題的正確方法。

idx = unique([find(all(A<0.000001,2));find(all(A==0,2))]); 

什麼是正確的方法?感謝您的幫助

+0

嘗試使用* round *函數。這將允許您對感興趣的重要數字進行四捨五入。然後重複查找功能。 –

+0

假設正數,你的方法很好,但可以簡化爲'idx = find(all(A <0.000001,2))'。請注意,幾乎爲零不明確。所以,你需要定義它。 – m7913d

回答

2

首先,定義你算什麼作爲「幾乎非常接近零」:

inc=1E-5;  

然後,匹配搜索到的標準:

idx=find(all(abs(A)<inc,2)) 

結果是:

idx = 

    2 
    3