How to extract only certain points contained in a segment?

1 vue (au cours des 30 derniers jours)
Gargolla9
Gargolla9 le 29 Juin 2022
Hi everyone. I have the following problem. I have segments with a series of point.
For each segment I would like to consider only the point which is closest to a certain obstacle and then I would like to save these points in an n x 2 array where the first column of this array represents the x-coordinates of the points and the second column of the array represents the y-coordinates of the points. How can I do it?

Réponses (2)

KSSV
KSSV le 29 Juin 2022
Read about knnsearch
  2 commentaires
Gargolla9
Gargolla9 le 29 Juin 2022
@KSSV yeah I know knnsearch, but I do not want to use it since i have to use it for another intricate application after in the same code. I was hoping for a more immediate solution
KSSV
KSSV le 29 Juin 2022
You can use it n number of times..what is restricting you?

Connectez-vous pour commenter.


Image Analyst
Image Analyst le 15 Sep 2022
Try this, assuming you have your points in x and y, and your obstacle point is in x0, y0:
distances = sqrt((x - x0) .^ 2 + (y - y0) .^ 2);
[sortedDistances, sortOrder] = sort(distances, 'ascend');
Then you can take however many of the "close" points as you want. Like let's say you want the 9 closest points:
sortedx = x(sortOrder);
sortedy = y(sortOrder);
xClosest = sortedx(1 : 9);
yClosest = sortedy(1 : 9);
Or maybe you just want a list of all distances less than 30:
distances = sqrt((x - x0) .^ 2 + (y - y0) .^ 2);
% Get logical indexes of what points are closer than 30.
closeIndexes = distances < 30;
xClosest = x(closeIndexes);
yClosest = y(closeIndexes);

Catégories

En savoir plus sur Computational Geometry dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by