How to return data points without the detected once while using Rangesearch function.

How to get red of the detected data points in the matrix [x y] (The points with in the range 0.5) and make the next code returns a new matrix [X Y] withOUT the detected ones with in the range 0.5 .
x = gallery('uniformdata',30,1,1);
y = gallery('uniformdata',30,1,10);
plot(x,y,'.')
k = boundary(x,y);
hold on;
plot(x(k),y(k));
%%get points at distance 0.5 from boundary
idx = rangesearch([x y],[x(k) y(k)],0.5);
% plot the points
N = length(k) ;
for i = 1:N
plot(x(idx{i}),y(idx{i}),'O','color',rand(1,3)) ;
end
Thank you

 Respuesta aceptada

points_within_range = unique([idx{:}]);
temp_matrix = [x, y];
output_matrix = temp_matrix(~points_within_range, :);
In my test, the resulting output matrix is empty, because with that distribution of points, every point is within 0.25 of some edge point. The average distance to some edge point was about 0.11

5 comentarios

Faez Alkadi
Faez Alkadi el 18 de Ag. de 2017
Editada: Faez Alkadi el 18 de Ag. de 2017
Hello Walter,
I tried to change the distance from (0.5) all the way to (0.1). But I noticed the "points_within_range" is changing, though I still have an empty matrix for "output_matrix"
Thanks
Sorry, should be
output_matrix = temp_matrix(points_within_range, :);
Faez Alkadi
Faez Alkadi el 18 de Ag. de 2017
Editada: Faez Alkadi el 18 de Ag. de 2017
I think i didn't explain properly,
I'm looking for the rest of the points that are NOT within the range. The once that are almost in the middle of the shape. the first one should work, but i don't understand why it gives an empty matrix
Thank you so much.
Sorry, I lost track.
temp_matrix = [x, y];
points_not_within_range = setdiff( 1:size(temp_matrix,1), unique([idx{:}]) );
output_matrix = temp_matrix(points_not_within_range, :);
The ~ version does not work because points_within_range was a vector of indices rather than a logical vector.
Thank you so much Walter its working now

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 18 de Ag. de 2017

Comentada:

el 18 de Ag. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by