exponenta event banner

Группировать разбросанные данные с использованием допуска

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

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

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)

Figure contains an axes. The axes contains 2 objects of type line.

Использовать 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)

Figure contains an axes. The axes contains 122 objects of type line.

См. также

Связанные темы