Asked by M.Prasanna kumar
on 4 Feb 2019

F = [x5;y5]'; % x,y coordinates

distances = pdist2(F,F); %% claculating distances between every coordinate to all other coodinates

closepoints = distances > 22; %% checking the condition

result = find(closepoints==1); %%

based on the logical condition how to get the coordinates (x,y) which are grater than 22

Answer by Akira Agata
on 4 Feb 2019

Accepted Answer

One possible solution would be like this:

F = [x5;y5]'; % x,y coordinates

D = pdist(F); % pdist function is suitable in this case

idx = squareform(D) > 22;

[p1,p2] = find(triu(idx));

Then, F(p1(i),:) and F(p2(i),:) (for i = 1, ..., numel(p1)) will give the coordinates (x1,y1) and (x2,y2) whose distance are grater than 22.

Akira Agata
on 6 Feb 2019

Let me clarify with the following simple 4 coordinates example (i.e assuming your matrix size of F is 4x2).

In this case, the coordinate D has a distance greater than 22 from all other coordinates. On the other hand, the coordinates C has a distance > 22 against A and D but < 22 against B.

In this case, what you want to do is to find the coordinates D? or to find all the edges that has a distance > 22?

M.Prasanna kumar
on 6 Feb 2019

coordinate A(x1,y1)

coordinate B(x2,y2)

coordinate C(x3,y3)

coordinate D(x4,y4)

and so on

distance between A to B, A to C and A to D should be greater than 22

distance between B to A, B to C and B to D should be greater than 22

distance between C to A, C to B and C to D should be greater than 22

distance between D to A, D to B and D to C should be greater than 22

and so on

like that how many such coordinates are possible . i want all such coordinates

for example:

In the above graph coordinate B voilates the condition i explainbed above, where as if we remove coordinate B from graph Coordnates A,B,C satisfies the condition i explained above.

M.Prasanna kumar
on 6 Feb 2019

In your case F is 4*2, out of four coordinates 3 coordinates are satisfying the condition (all possible distances between every coordinate to all other coordintes is greater than 22)

suppose In my case F is 1000*2 (randomly generated ) . out ofthousand how many such possible coordinates will satisfy the condition

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 4 Comments

## madhan ravi (view profile)

Direct link to this comment:https://nl.mathworks.com/matlabcentral/answers/442998-i-have-matrix-f-x-y-coordinates-which-is-1000-2-matrix-i-calculated-distances-between-coordinate#comment_667315

## M.Prasanna kumar (view profile)

Direct link to this comment:https://nl.mathworks.com/matlabcentral/answers/442998-i-have-matrix-f-x-y-coordinates-which-is-1000-2-matrix-i-calculated-distances-between-coordinate#comment_667333

## madhan ravi (view profile)

Direct link to this comment:https://nl.mathworks.com/matlabcentral/answers/442998-i-have-matrix-f-x-y-coordinates-which-is-1000-2-matrix-i-calculated-distances-between-coordinate#comment_667338

## M.Prasanna kumar (view profile)

Direct link to this comment:https://nl.mathworks.com/matlabcentral/answers/442998-i-have-matrix-f-x-y-coordinates-which-is-1000-2-matrix-i-calculated-distances-between-coordinate#comment_667371

Sign in to comment.