4
我不知道下面的問題是否比使用循環有更快的解決方案。在Matlab中進行3D裝倉
我有一組分散在三維空間中的點,併爲每個點分配一個值。所以像dataPoints = [x1, y1, z1, v1; x2, y2, z2, v2; ...]
。三維空間均勻地分成子體積dx
×dy
×dz
。我需要創建一個矩陣,其中包含每個子卷中v
的總和。
子卷和數據點的數量可能非常大,大約爲100萬個。所以循環是真的要避免。
我可以很容易找到,其子卷點屬於:
ix(:) = floor(x(:)/dx) + 1;
iy(:) = floor(y(:)/dy) + 1;
iy(:) = floor(z(:)/dz) + 1;
但是現在我需要用相同的元組(ix, iy, iz)
加起來所有的點。有任何想法嗎?
始終爲'accumarray +1()':) –
之間'accumarray'和'bsxfun'我覺得我比我的同齡人一個MATLAB神。 –
謝謝!我真的需要去處理'accumarray'。 – texnic