Этот пример показывает, как использовать 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)