ループを使用するよりも、以下の問題に対するより高速な解決策があるのだろうか。
各ポイントに値が割り当てられた、3D 空間に散在する一連のポイントがあります。のようなものdataPoints = [x1, y1, z1, v1; x2, y2, z2, v2; ...]です。dx3D 空間はサブボリューム× dy×に均等に分割されdzます。v各サブボリュームの の合計を含む行列を作成する必要があります。
サブボリュームとデータ ポイントの数は、それぞれ 100 万のオーダーで、非常に大きくなる可能性があります。したがって、ループは本当に避けるべきです。
ポイントがどのサブボリュームに属するかは簡単にわかります。
ix(:) = floor(x(:) / dx) + 1;
iy(:) = floor(y(:) / dy) + 1;
iy(:) = floor(z(:) / dz) + 1;
ただし、同じタプルですべてのポイントを合計する必要があり(ix, iy, iz)ます。何か案は?