【发布时间】:2015-04-26 00:33:08
【问题描述】:
我有一个定义 xyz 点云的数组。非常简单的 x、y 和 z,没有其他字段。
我将它加载到 matlab 中没有问题,但现在需要过滤 z 值。我想根据首选值删除数组中的行。因此,例如,如果 z
我试过这个。基本上遍历整个数组,每次我在参数中找到一行时,我都想将它写入一个新数组。因此,如果第一个数组有 220K 列,并且我说我的新数组必须包含大于 -5.4 的 z 值,那么我应该有一个行数更少的新数组。
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
非常简单,但不适合我!
【问题讨论】:
-
问题已经回答了,但是here是一些人在讨论使用的技术。
-
您的代码无法正常工作,因为您正在使用带有
array(n)的线性索引。要选择一行,请使用array(n,:)。我建议查看colon运算符和矩阵索引的文档。 -
欢迎来到stackoverflow!请考虑接受一个答案(最能回答您的问题的那个),以表明系统已解决您的问题(左侧的绿色复选标记)。
标签: arrays matlab matrix conditional-statements