find the distance from 1 point to all point

9 views (last 30 days)
Let's say: I have the data A containing of n points
A=[ 5 5 1 ----> coordinate (x,y,z) of point 1
4 5 2 ----> coordinate (x,y,z) of point 2
1 1 1 ----> coordinate (x,y,z) of point 3
2 3 1 ----> coordinate (x,y,z) of point 4
6 1 7 ----> coordinate (x,y,z) of point 5
................................................
....... ] ----> coordinate (x,y,z) of point n
And, I also have point: B(0 2 1).
How to find the Euclidean distance between point B and all points(1,2,3,4,5,...,n) in A.
Example:
distance between point B and points 1:
=sqrt{(5-0)^2+ (5-2)^2 + (1-1)^2}= 5.83

Accepted Answer

Rik
Rik on 26 Oct 2017
The implicit expansion introduced in R2016b can make life easier (here it can make the command a bit shorter), but I'm going to assume you don't have it.
distance=sqrt((A(:,1)-B(1)).^2+(A(:,2)-B(2)).^2+(A(:,3)-B(3)).^2);
  3 Comments
Jan
Jan on 26 Oct 2017
Edited: Jan on 26 Oct 2017
@ha ha: Use sort to sort them and then take the first 10 values. If you need the indices also, get the 2nd output of sort.
With auto-expanding since R2016b:
Dist = sqrt(sum((A - B) .^ 2, 2))

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!