Center of two points (positive and nenegative values)

2 Ansichten (letzte 30 Tage)
martin martin
martin martin am 21 Mär. 2019
Kommentiert: martin martin am 22 Mär. 2019
Hello guys,
could anyone explain to me how to calculate the center of gravity for negative values? This code work only for possitive values, for example if values will be 10 and 10 ( v = [10 10], the centroid is at the middle, of values will be 0 and 10 (v - [0 10]) then centrid is on the green point. But how can I edit this, for negative values? For example for -10 and -10 (v = [-10 -10]) the centroid will be at the middle, for values -10 and 0 (v = [-10 0]) centraid will be on the blue point.
Best regards.
x = [0 1];
y = [1 1];
v = [5 10];
figure(1);clf
plot(x,y)
hold on
scatter(x,y,100,v,'filled')
axis image
axis([x(1)-1 x(2)+1 y(1)-1 y(2)+1])
xc = sum(v.*x)/sum(v);
yc = sum(v.*y)/sum(v);
hold on
scatter(xc,yc)
colorbar
colormap winter
grid on

Akzeptierte Antwort

the cyclist
the cyclist am 21 Mär. 2019
I believe your calculation is correct for negative values of v. The problem is that the point may not lie between the two input points, and in fact may lie outside the axis limits you have defined, so you don't see it.
Try setting
v = [10 -6]
and commenting out the line
axis([x(1)-1 x(2)+1 y(1)-1 y(2)+1])
so that you see the default axis.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by