How to find the center of matrix
26 次查看(过去 30 天)
显示 更早的评论
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.
3 个评论
DGM
2022-5-25
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?
采纳的回答
DGM
2022-5-25
编辑:DGM
2022-5-25
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 个评论
Image Analyst
2022-5-27
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.
更多回答(1 个)
Image Analyst
2022-5-26
Did you try
data(isnan(data)) = 0;
mask = data ~= 0;
props = regionprops('table', mask, data, 'WeightedCentroid');
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!