how to find the weighted centroid, center of mass/barycenter of a 3D grid of points

18 Ansichten (letzte 30 Tage)
Dear all, I am new to matlab, I need to find the coordinates of the center of mass of a regular 3D grid of points, each point being weighted by an intensity value v. I have the 3D grid as a 2D matrix A, with rows A(k,:)= [xk, yk, zk, vk], where xk, yk, zk, are the coordinates of the point k, and vk is its intensity (current amplitude in my case, I am working with source imaging). I mention that the hull of the 3d grid is concave or convex at times, actually the cortical surface, with the points placed within the brain substance regularly; and the barycenter cannot be but one these 3D grid points (it cannot be, for example, outside the brain bounded by a concave surface such as a sulcus). I know this may be trivial, I appreciate your help. Tavi

Akzeptierte Antwort

Niko
Niko am 30 Okt. 2014
sum(bsxfun(@times,A(:,1:3),A(:,4)),1)/sum(A(:,4))
Not sure if this is what you're looking for...
  1 Kommentar
Octavian
Octavian am 31 Okt. 2014
Thank you, Niko, this is close, however the result is not constrained to the 3D grid points, I would need to find the point of the grid in A closest to the calculated barycenter per your formula, and find its index k. Octavian

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Bounding Regions finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by