I have matrix F (x,y coordinates), which is 1000*2 matrix. i calculated distances between coordinates using PDIST2 command. i want coordinates which are at distance greater than 22?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
M.Prasanna kumar
le 4 Fév 2019
Commenté : M.Prasanna kumar
le 6 Fév 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
4 commentaires
madhan ravi
le 4 Fév 2019
So you want to obtain the x and y coordinates when distance is greater than 22 ?
Réponse acceptée
Akira Agata
le 4 Fév 2019
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.
7 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Statistics and Machine Learning Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!