How to measure the shortest distance among different points using Matlab
Mostrar comentarios más antiguos
Lets suppoese i have the points as shown by B. For example, P1(1,1,2 ), P2(1,2,3 ) etc as shown by B. I want to measure the shortest distance among these points.
x = B(:,1), y =B(:,2) and z = B(:,3).
Thanks in advance for support from community members. Regards!
B =
1 1 3
1 2 3
2 3 1
2 3 2
3 1 1
3 3 1
3 3 2
5 comentarios
Sudhakar Shinde
el 27 de Oct. de 2020
KSSV
el 27 de Oct. de 2020
Read about pdist.
M.S. Khan
el 28 de Oct. de 2020
KSSV
el 28 de Oct. de 2020
That's what pdist does....did you read the documentation?
M.S. Khan
el 28 de Oct. de 2020
Respuestas (1)
Jakob
el 28 de Oct. de 2020
B = randi([-10 10],5,3); % just some random numbers
minimum = sqrt(sum((B(1,:)- B(2,:)).^2));
for i = 1 : size(B,1)-1
for j = i+1 : size(B,1)
minimum = min(minimum,sqrt(sum((B(i,:)- B(j,:)).^2)));
end
end
disp(minimum)
3 comentarios
Jakob
el 28 de Oct. de 2020
But thats basically pdist lol
M.S. Khan
el 29 de Oct. de 2020
Jakob
el 10 de Mzo. de 2021
Hi again, sorry I can't reply in private to your email.
About your question:. "I think pdist2() can only be used for 2D, right.".
Be careful, pdist2() works different then pdist(), you can safely use
min(pdist(YOURMATRIX))
to measure the minimal distance for any dimension. It's basically the same as my code
Categorías
Más información sobre Univariate Discrete Distributions en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!