許容誤差を使用した類似するデータ点の平均化
この例では、uniquetol
を使用して類似する (許容誤差内の) x
座標および y
座標をもつ 3 次元の点の z
座標の平均を求める方法を示します。
データ セットとして領域 における関数 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)
uniquetol
を以下のオプションで使用して類似する x
座標および y
座標をもつ点を求めます。
A
の行に点座標が含まれるため、ByRows
をtrue
に指定します。互いの許容誤差内にあるすべての点のインデックスを返すため、
OutputAllIndices
をtrue
に指定します。x
座標およびy
座標には絶対許容誤差を使用し、z
座標は無視するように、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)