点集的凸包是包含所有点的最小凸包络。Octave 提供了 convhull 和 convhulln 函数来计算二维和 N 维点集的凸包。
H = convhull (x, y) ¶H = convhull (x, y, z) ¶H = convhull (x) ¶H = convhull (…, options) ¶[H, V] = convhull (…) ¶计算二维或三维点集的凸包。
凸包 H 是一个指向原始点集的线性索引向量,指定哪些点构成包围凸包。仅对于二维输入,输出围绕凸包按逆时针方向排序。
输入 x 也可以是具有两列或三列的矩阵,其中第一列包含 x 数据,第二列包含 y 数据,可选的第三列包含 z 数据。
可选的最后一个参数必须是字符串或字符串元胞数组,其中包含传递给底层 qhull 命令的选项。有关详细信息,请参阅 Qhull 库的文档
http://www.qhull.org/html/qh-quick.htm#options。
默认选项是 {"Qt"}。
如果 options 不存在或为 [],则使用默认参数。否则,options 替换默认参数列表。要将用户选项附加到默认值,需要在 options 中重复默认参数。使用空字符串表示不传递任何参数。
如果请求第二个输出 V,则计算包围凸包的体积。
h = convhulln (pts) ¶h = convhulln (pts, options) ¶[h, v] = convhulln (…) ¶计算点集 pts 的凸包。
pts 是一个大小为 [n, dim] 的矩阵,包含维度为 dim 的空间中的 n 个点。
凸包 h 是一个指向点集的索引向量,指定哪些点构成包围凸包。
可选的第二个参数必须是字符串或字符串元胞数组,其中包含传递给底层 qhull 命令的选项。有关详细信息,请参阅 Qhull 库的文档 http://www.qhull.org/html/qh-quick.htm#options。 默认选项取决于输入的维度:
{"Qt"}
{"Qt", "Qx"}
如果 options 不存在或为 [],则使用默认参数。否则,options 替换默认参数列表。要将用户选项附加到默认值,需要在 options 中重复默认参数。使用空字符串表示不传递任何参数。
如果请求第二个输出 v,则计算包围凸包的体积。
convhull 的使用示例如下:
x = -3:0.05:3; y = abs (sin (x)); k = convhull (x, y); plot (x(k), y(k), "r-", x, y, "b+"); axis ([-3.05, 3.05, -0.05, 1.05]);
上述输出可在 图 30.5 中查看。
图 30.5:简单点集的凸包
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4