ドキュメンテーション

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

convhulln

N 次元の凸包

構文

K = convhulln(X)
K = convhulln(X,options)
[K,v] = convhulln(...)

説明

K = convhulln(X) は、X の凸包の小平面を構成する X 内の点のインデックス K を返します。X に 2 次元座標または 3 次元座標が含まれる場合、小平面はそれぞれ三角形または四面体を形成します。一般に、X は、n 次元空間で m 個の点を表す mn 列の配列にすることができます。凸包に p 個の小平面がある場合、K のサイズは pn 列になります。

convhulln は Qhull を使用します。

K = convhulln(X,options) は Qhull オプションのセル配列を指定します。既定のオプションは、以下のとおりです。

  • 入力が 2、3、4 次元の場合は {'Qt'}

  • 入力が 5 次元以上の場合は {'Qt','Qx'}

options[] の場合、既定のオプションが使用されます。Qhull とそのオプションの詳細は、http://www.qhull.org/ を参照してください。

[K,v] = convhulln(...) は、凸包で囲まれた体積 v も返します。

可視化

関数 convhulln の出力のプロットは、n の値に依存します。

  • n = 2 の場合は、convhull の場合と同様に plot を使用します。

  • n = 3 の場合は、trisurf を使用することで出力をプロットできます。呼び出しシーケンスは、以下のようになります。

    K = convhulln(X);
    trisurf(K,X(:,1),X(:,2),X(:,3))
  • n > 3 に対して convhulln の出力をプロットすることはできません。

次の例は、関数 convhullnoptions 入力を示しています。次のコマンド

X = [0 0; 0 1e-10; 0 0; 1 1];
K = convhulln(X)

は、警告を返します。

Warning: qhull precision warning: 
The initial hull is narrow 
(cosine of min. angle is 0.9999999999999998).
A coplanar point may lead to a wide facet. 
Options 'QbB' (scale to unit box) or 'Qbb' 
(scale last coordinate) may remove this warning. 
Use 'Pp' to skip this warning.

この警告を表示しないようにするには、オプション 'Pp' を使用します。次のコマンドはオプション 'Pp' を、既定の設定の 'Qt' と共に convhulln へ渡します。

K = convhulln(X,{'Qt','Pp'})

K =

     1     4
     1     2
     4     2

アルゴリズム

convhulln は、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 より前に導入

この情報は役に立ちましたか?