許容誤差を使用した類似するデータ点の平均化
この例では、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)
