【问题标题】:Convhull in MatlabMatlab中的Convhull
【发布时间】:2012-10-26 04:42:10
【问题描述】:

我有 3 个位置数据向量:xyz

x = [0.1524 0.1219 0.0610 0.0914 0.0610 0.1219 0.0305 0.0914 0.2134 0.0610 0.1219
0.0305 0.0610 0.1219 0.0914 0.1524 0.0610 0.1524 0.0610 0.0610 0.0610 0.0610
0.1524 0.0914 0.0610 0.1524 0.0610 0.2134 0.0610 0.0914 0.1524];

y = [0.1219 0.1524 0.0305 0.1219 0.1524 0.1524 0.0610 0.1219 0.1219 0.1524 0.1524
0.0610 0.0914 0.1524 0.1829 0.1829 0.0914 0.1829 0.2134 0.0914 0.2134 0.0914
0.1829 0.0610 0.0914 0.1829 0.0914 0.1829 0.2134 0.1219 0.1829];

z = [0.0305 0.0305 0.0610 0.0610 0.0610 0.0610 0.0914 0.0914 0.0914 0.0914 0.0914
0.1219 0.1219 0.1219 0.1219 0.1219 0.1524 0.1524 0.1524 0.1829 0.1829 0.2134
0.2134 0.2438 0.2438 0.2438 0.2743 0.2743 0.2743 0.3048 0.3048];

我想知道如何在这个集合上应用凸包? Matlab 没有 接受这种格式但规则间隔的网格。

【问题讨论】:

    标签: matlab convex-hull


    【解决方案1】:

    您可以使用convhulln 计算大于 2 的维度的凸包。如果要绘制结果,请使用trisurf。请参阅下面的输入示例代码:

    X = [x;y;z]'; %# involves a 3D point on each row  
    K = convhulln(X);
    trisurf(K,X(:,1),X(:,2),X(:,3))
    

    【讨论】:

    • 非常感谢。我在这里可能听起来很愚蠢,但有没有办法知道这个形状中有多少个洞。我的意思是看 2D 的 matlab 示例,在使用“convhull”之后,心形点由菱形对象表示。那么可以找到心脏细胞(节点)在凸包总面积中的比例,还是在总体积的 3D 中?
    • 最好将此作为一个单独的问题提出。
    猜你喜欢
    • 2012-09-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多