Main Content

허용오차를 사용하여 유사한 데이터 점의 평균 구하기

이 예제에서는 uniquetol을 사용하여 (허용오차 내의) 유사한 x 좌표와 y 좌표를 갖는 3차원 점들의 평균 z 좌표를 구하는 방법을 보여줍니다.

영역 [-3,3]×[-3,3]에서 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)

Figure contains an axes object. The axes contains a line object which displays its values using only markers.

다음 옵션과 함께 uniquetol을 사용하여 유사한 x 좌표와 y 좌표를 가지는 점을 찾습니다.

  • A의 행에 점 좌표가 포함되어 있으므로 ByRowstrue로 지정합니다.

  • 각각의 허용오차 범위 내에 있는 모든 점에 대한 인덱스를 반환하도록 OutputAllIndicestrue로 지정합니다.

  • z 좌표는 무시하면서 x 좌표와 y 좌표에 절대 허용오차를 사용하도록 DataScale[1 1 Inf]로 지정합니다.

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 object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

참고 항목

관련 항목