exponenta event banner

Среднее значение аналогичных точек данных с использованием допуска

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

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

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)

Figure contains an axes. The axes contains an object of type line.

Найти точки, которые имеют похожие 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)

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

См. также

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