How to extract only certain points contained in a segment?

1 visualización (últimos 30 días)
Gargolla9
Gargolla9 el 29 de Jun. de 2022
Respondida: Image Analyst el 15 de Sept. de 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?

Respuestas (2)

KSSV
KSSV el 29 de Jun. de 2022
Read about knnsearch
  2 comentarios
Gargolla9
Gargolla9 el 29 de Jun. de 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 el 29 de Jun. de 2022
You can use it n number of times..what is restricting you?

Iniciar sesión para comentar.


Image Analyst
Image Analyst el 15 de Sept. de 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);

Categorías

Más información sobre Computational Geometry en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by