Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

dsearchn

説明

k = dsearchn(P,PQ) は、PQ のクエリ点への P の最近傍点のインデックスを、ユーグリッド距離で測定して返します。

k = dsearchn(P,T,PQ) は、P の最近傍点のインデックスを、Delaunay 三角形分割 T (T = delaunayn(P)) を使用して返します。T を指定すると、PQ に含まれる点の数が大きい場合に探索のパフォーマンスを向上できます。

k = dsearchn(P,T,PQ,outind) は、P の最近傍点のインデックスを返しますが、P の凸包外にあるクエリ点に関しては、outind のインデックス値を割り当てます。たとえば、desearchn(P,T,PQ,Inf) は、凸包外のクエリ点に関しては Inf のインデックス値を返します。

[k,dist] = dsearchn(___) も、P の各点から PQ の対応するクエリ点までの距離を返します。

すべて折りたたむ

2 次元データ点の行列 P と、2 次元クエリ点の行列 PQ を作成します。各クエリ点に最も近いデータ点を見つけて、対応する距離を計算します。

P = gallery('uniformdata',[10 2],0);
PQ = [0.5 0.5; 0.1 0.7; 0.8 0.7];
[k,dist] = dsearchn(P,PQ);

データ点とクエリ点をプロットし、各クエリ点に最も近いデータ点を強調表示します。

plot(P(:,1),P(:,2),'ko')
hold on
plot(PQ(:,1),PQ(:,2),'*g')
hold on
plot(P(k,1),P(k,2),'*r')
legend('Data Points','Query Points','Nearest Points','Location','sw')

距離を表示します。

dist
dist = 3×1

    0.2386
    0.1602
    0.1723

入力引数

すべて折りたたむ

点。n 次元の点を m 個含む m 行 n 列の行列として指定します。たとえば、P = [0 0 0; 1 1 1] は、点 (0,0,0) と (1,1,1) の 3 次元座標を表します。

クエリ点。n 次元の点を r 個含む r 行 n 列の行列として指定します。たとえば、2 行 3 列の行列 PQ = [-1 -1 -1; 2 2 2] は、2 つのクエリ点 (-1,-1,-1) と (2,2,2) の 3 次元座標を表します。

PQ の列数は、P の列数と一致しなければなりません。

Delaunay 三角形分割。関数 delaunayn によって返される行列として指定します。

外側インデックス値。凸包外のクエリ点のスカラー インデックス値として指定します。

outval[] として指定されている場合、出力 k は構文 k = dsearchn(P,T,PQ) と等価です。

出力引数

すべて折りたたむ

インデックス。クエリ点に最も近いデータ点のインデックスを含む列ベクトルとして返されます。k の長さは、クエリ点の数と等しくなります。

距離。各クエリ点と最も近い入力点の間のユークリッド距離を含む列ベクトルとして返されます。dist の長さは、クエリ点の数と等しくなります。

アルゴリズム

dsearchn は、Qhull [1] をベースにしています。Qhull の詳細については、http://www.qhull.org/ を参照してください。著作権に関する情報は、http://www.qhull.org/COPYING.txt を参照してください。

参照

[1] Barber, C.B., D.P. Dobkin, and H.T. Huhdanpaa. “The Quickhull Algorithm for Convex Hulls.” ACM Transactions on Mathematical Software, Vol. 22, No. 4, Dec. 1996, p 469–483.

R2006a より前に導入