Agrupar datos dispersos utilizando una tolerancia
Este ejemplo muestra cómo agrupar puntos de datos dispersos según su proximidad a los puntos de interés.
Cree un conjunto de puntos 2D aleatorios. Después, cree y represente una cuadrícula de puntos equidistantes en la parte superior de los datos aleatorios.
x = rand(10000,2); [a,b] = meshgrid(0:0.1:1); gridPoints = [a(:), b(:)]; plot(x(:,1), x(:,2), '.') hold on plot(gridPoints(:,1), gridPoints(:,2), 'xr', 'Markersize', 6)
Utilice ismembertol
para localizar los puntos de datos en x
que se encuentren dentro de la tolerancia de los puntos de la cuadrícula en gridPoints
. Utilice estas opciones con ismembertol
:
Especifique
ByRows
comotrue
, ya que las coordenadas de los puntos se encuentran en las filas dex
.Especifique
OutputAllIndices
comotrue
para devolver todos los índices de las filas enx
que se encuentran dentro de la tolerancia de la fila correspondiente engridPoints
.
[LIA,LocB] = ismembertol(gridPoints, x, 0.05, ... 'ByRows', true, 'OutputAllIndices', true);
Por cada punto de la cuadrícula, represente los puntos en x
que se encuentren dentro de la tolerancia de dicho punto de la cuadrícula.
figure hold on for k = 1:length(LocB) plot(x(LocB{k},1), x(LocB{k},2), '.') end plot(gridPoints(:,1), gridPoints(:,2), 'xr', 'Markersize', 6)