Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

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 como true, ya que las coordenadas de los puntos se encuentran en las filas de x.

  • Especifique OutputAllIndices como true para devolver todos los índices de las filas en x que se encuentran dentro de la tolerancia de la fila correspondiente en gridPoints.

[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)

Consulte también

Temas relacionados