我想知道下面的问题是否有比使用循环更快的解决方案。
我有一组分散在 3D 空间中的点,每个点都有一个值。所以像dataPoints = [x1, y1, z1, v1; x2, y2, z2, v2; ...]
. 3D 空间被均匀地分成子体积dx
× dy
× dz
。我需要创建一个矩阵,其中包含v
每个子卷中 ' 的总和。
子卷和数据点的数量可能非常大,每个数量级为 100 万。所以真的要避免循环。
我可以很容易地找出一个点属于哪个子卷:
ix(:) = floor(x(:) / dx) + 1;
iy(:) = floor(y(:) / dy) + 1;
iy(:) = floor(z(:) / dz) + 1;
但是现在我需要用相同的 tuple 将所有点相加(ix, iy, iz)
。有任何想法吗?