Усреднение похожих точек данных с помощью допуска

Этот пример показывает, как использовать uniquetol, чтобы найти средний z - координата 3-D точек, которые имеют подобный (в допуске) координаты y и x.

Используйте случайные точки, выбранные от функции peaks в области как набор данных. Добавьте небольшое количество шума к данным.

xy = rand(10000,2)*6-3; 
z = peaks(xy(:,1),xy(:,2)) + 0.5-rand(10000,1);
A = [xy z];
plot3(A(:,1), A(:,2), A(:,3), '.')
view(-28,32)

Найдите точки, которые имеют подобный x и координаты y с помощью uniquetol с этими опциями:

  • Задайте ByRows как true, поскольку строки A содержат координаты точки.

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

  • Задайте DataScale как [1 1 Inf], чтобы использовать абсолютный допуск к x и координатам y при игнорировании z - координата.

DS = [1 1 Inf];
[C,ia] = uniquetol(A, 0.3, 'ByRows', true, ...
    'OutputAllIndices', true, 'DataScale', DS);

Среднее число каждая группа точек, которые являются в допуске (включая z - координаты), производя уменьшенный набор данных, который все еще содержит общую форму исходных данных.

for k = 1:length(ia)
    aveA(k,:) = mean(A(ia{k},:),1); 
end

Постройте график получившихся составивших в среднем точек сверху исходных данных.

hold on
plot3(aveA(:,1), aveA(:,2), aveA(:,3), '.r', 'MarkerSize', 15)

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

Похожие темы

Была ли эта тема полезной?