我有一個定義xyz點雲的數組。很簡單,x,y和z沒有其他字段。在一列中過濾關於某個條件的矩陣
我加載到matlab沒有問題,但現在需要過濾z值。我想根據首選值刪除數組中的行。因此,例如如果z是<比5刪除此行。我認爲簡單的方法是在找到符合我的標準的行時創建一個新的數組。
我試過了。基本上遍歷整個數組,每次我在我的參數Id中找到一行,就像將它寫入一個新數組。所以,如果第一個數組有220K列,並且我說我的新數組必須將conatin z值大於-5.4,那麼我應該有一個新行數少的行。
length = size (array, 1)
newarray= []
b=0;
for n = 1:length
if array(n, 3) > -5.4 %I want to remove anything greater than -5.4 in the %third column
%newarray = [newarray; array(n)];
b = b+1
end
end
很簡單,但不適合我!
這個問題已經得到解答,但[這裏](http://www.mathworks.com/matlabcentral/newsreader/view_thread/289365)是一些人討論使用的技術。 – 2015-02-24 11:52:27
你的代碼不工作,因爲你正在用'array(n)'使用線性索引。要選擇一行,請使用'array(n,:)'。我建議檢查「冒號」操作符和矩陣索引的文檔。 – Daniel 2015-02-24 11:52:28
歡迎使用stackoverflow!請考慮接受一個答案(最好回答你的問題的答案)以表明系統,你的問題解決了(左邊的綠色複選標記)。 – thewaywewalk 2015-03-04 08:21:16