필터 지우기
필터 지우기

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

조회 수: 11 (최근 30일)
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

채택된 답변

Niko
Niko 2014년 10월 30일
sum(bsxfun(@times,A(:,1:3),A(:,4)),1)/sum(A(:,4))
Not sure if this is what you're looking for...
  댓글 수: 1
Octavian
Octavian 2014년 10월 31일
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Particle & Nuclear Physics에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by