How to measure the shortest distance among different points using Matlab

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 Comments

Thanks Sudkhakr Shinde and KSSV for your kind reply. Actually, we can use 'norm' function to measure distance between two points. But i want to measure the distance among all the points, then i want to pick the minimum distance. Please any help. Regards
That's what pdist does....did you read the documentation?
Dear KSSV, i am trying to understand its documentation and then will apply. Thanks for your guidance. Regards!

Sign in to comment.

Answers (1)

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 Comments

Thanks KSSV, pdist() functions works. Thanks for reply Dear Jakob. your code and pdist() function works same.
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

Sign in to comment.

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Products

Asked:

on 27 Oct 2020

Commented:

on 10 Mar 2021

Community Treasure Hunt

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

Start Hunting!