How to find nearest two points each other ?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ender Rencuzogullari
el 29 de Nov. de 2015
Respondida: Semion
el 14 de Abr. de 2020
Hi Everyone,
I have
X = (Yt.*sin(W))-(Xt.*cos(W));
Y = (Yt.*cos(W))+(Xt.*sin(W)); which give the coordinates X and Y.
X_inv = R.*sin(B_involute);
Y_inv = R.*cos(B_involute); which give the coordinates X_inv and Y_inv.
I need to find the nearest two points between X,Y and X_inv,Y_inv.
lots of thanks from now.
2 comentarios
Image Analyst
el 29 de Nov. de 2015
What is W? What is B_involute? Can you post a diagram or plot of this and point out X, Y, X_inv, Y_inv what two points on there you'd like to have it return - which are the "two points"? And it's ambiguous. What's nearest to what? Two points nearest to each other? Two points nearest to either X,Y or X_inv,Yinv? For example if you have 2,6,7,50, then 6 and 7 are nearest to each other but 6 and 7 are closer to 2 than they are to 50, so would you return 6 and 7, or return 2???
Respuesta aceptada
Star Strider
el 29 de Nov. de 2015
If you have the Statistics Toolbox, use the pdist2 function.
4 comentarios
Star Strider
el 29 de Nov. de 2015
Editada: Star Strider
el 29 de Nov. de 2015
My pleasure!
You would simply use your ‘X’, ‘Y’, ‘X_inv’ and ‘Y_inv’ in my code, eliminating the lines I used to create them to test it.
You would use only:
for k1 = 1:length(X)
for k2 = 1:length(X_inv)
DE(k1,k2) = hypot(X(k1)-X_inv(k2), Y(k1)-Y_inv(k2)); % Euclidean Distance
end
end
[DEmin,ix] = min(DE(:));
[K1,K2] = ind2sub(size(DE),ix);
fprintf(1,'\nNearest Points:\n\tDistance = %.3f\n', DEmin)
fprintf(1,'\t\tX(%d), Y(%d) \t\t\t= %.2f, %.2f\n', K1, K1, X(K1), Y(K1))
fprintf(1,'\t\tX_inv(%d), Y_inv(%d) \t= %.2f, %.2f\n', K2, K2, X_inv(K2), Y_inv(K2))
Más respuestas (2)
Image Analyst
el 29 de Nov. de 2015
Use a nested for loop and the sqrt() function, then sort() and find() to find the 8 closest distances at the two points where your curves intersect.
Or maybe you could use roots(curve1-curve2).
Semion
el 14 de Abr. de 2020
Hi. Could you explain, how does method "dsearchn" select an index of multi closest points with the same distance to target point? BW, the method "dnsearch" with and without triangulation produce different results.
0 comentarios
Ver también
Categorías
Más información sobre Statistics and Machine Learning Toolbox 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!