How to find the center of matrix
25 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mingde
el 25 de Mayo de 2022
Comentada: Image Analyst
el 27 de Mayo de 2022
Dear all helper,
I want like to calculate the center of force in 2 point that I draw in the red color by using matlab.
Here is attech file of the csv data.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1010080/image.png)
3 comentarios
DGM
el 25 de Mayo de 2022
Your data is 14925x10, with periodic rows of NaN every 17 rows. It's not clear what this data represents or how the NaNs should be treated. Is this a contiguous 2D region? Multiple independent 2D regions? A 3D volume? Are the NaN rows merely delimiters/breaks to be discarded, or do they have numerical meaning? If they are to be kept, how should they be handled?
Respuesta aceptada
DGM
el 25 de Mayo de 2022
Editada: DGM
el 25 de Mayo de 2022
This seems fairly straightforward.
% a test array
F = zeros(5);
F(2,2) = 10;
F(4,4) = 10;
% global sum of F
Ft = sum(F(:))
% coordinates of F centroid
cy = sum((1:size(F,1)).'.*sum(F,2))/Ft
cx = sum((1:size(F,2)).*sum(F,1))/Ft
% visualize the result
imshow(F,[]); hold on
plot(cx,cy,'*','markersize',20)
5 comentarios
Image Analyst
el 27 de Mayo de 2022
You never answered his questions about whether your multiple regions are to be treated as a single region, or whether you want the location of the centroid for each region individually. But he gave you the centroid of all regions as if they were a single region and you accepted so I guess that's what you wanted.
Más respuestas (1)
Image Analyst
el 26 de Mayo de 2022
Did you try
data(isnan(data)) = 0;
mask = data ~= 0;
props = regionprops('table', mask, data, 'WeightedCentroid');
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!