Группировка данных, имеющих разброс, с помощью допуск

Этот пример показывает, как сгруппировать точки данных, имеющий разброс на основе их близости к интересным местам.

Создайте набор случайных 2D точек. Затем создайте и постройте сетку равномерно распределенных точек сверху случайных данных.

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)

Используйте ismembertol, чтобы определить местоположение точек данных в x, которые являются в допуске узлов решетки в gridPoints. Используйте эти опции с ismembertol:

  • Задайте ByRows как true, поскольку координаты точки находятся в строках x.

  • Задайте OutputAllIndices как true, чтобы возвратить все индексы для строк в x, которые являются в допуске соответствующей строки в gridPoints.

[LIA,LocB] = ismembertol(gridPoints, x, 0.05, ...
    'ByRows', true, 'OutputAllIndices', true);

Для каждого узла решетки постройте точки в x, которые являются в допуске того узла решетки.

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)

Смотрите также

Похожие темы