我有一个 3D 空间中的点数组
points
,实现为维度为 (numberOfPoints, 3)
的 2D 数组。我有一个区域的体素图,想找出每个体素中有多少个点。我想循环遍历数组,并为每个点增加其体素的数量。但我发现一个简单的 for 循环会遍历整个二维数组的各个元素。也就是说,这个:
for (point in points) {
print(point)
}
打印很多数字(单独的坐标)。我希望它打印很多三元素向量。仅循环一维的正确语法是什么?
您可以循环维度。对于二维,我们有方便的
nrow()
和 ncol()
函数来获取维度。一般来说,您可以将 nrow(x)
替换为 dim(x)[1]
for(i in 1:nrow(points)) {
print(points[i, ])
}
还有
apply
函数,用于在数组的边距上应用函数:
apply(points, MARGIN = 1, FUN = print)