我有一个定义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