Problem with Finding the Distance Between 2 Points
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello Matlab Users,
I have a plot and would like to find the closest data point in this plot to my ginput() selection. But interestingly after plotting the data point with apparently the minimum distance, I noticed there are many other points on the plot that are clearly closer to the ginput selection! Here's an example of this problem. The Reference (m) (red star) can be considered as ginput selection. Point #3 (green box) is found to have the minimum distance to the reference. However, I think point #1 should be the closest one.
I'm not sure what I am doing wrong here, but would appreciate your help.
x=[0.3582 434.1973;
0.3522 424.8328;
0.3435 427.1739];
figure;
plot(x(:,1),x(:,2),'o'); hold on
text(x(:,1)+0.001,x(:,2),{'1';'2';'3'},'FontSize',12,'Color','k')
m =[0.3640 429.5151];
plot(m(1),m(2),'*r');
text(m(1)+0.001,m(2),{'Reference (m)'},'FontSize',12,'Color','r')
for i=1:3
d(i) = pdist([m;x(i,:)],'euclidean');
end
[mm,IX]=min(d);
plot(x(IX,1),x(IX,2),'s','MarkerSize',12,'MarkerEdgeColor','g')
Best Regards, Noushin
0 Kommentare
Antworten (1)
Andrew Newell
am 17 Nov. 2011
Your calculation is correct, but the scales on your x and y axes are very different. The apparently large horizontal difference is actually much smaller than the vertical distances. Try typing axis equal to see it to scale.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Exploration 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!