0

我使用 K-means 将数据聚类到 8 个不同的聚类中[X,C] = kmeans(XX, 8],这意味着我有 8 个质心,它们的位置存储在C“XYZ 下面显示为列的示例”中。我想将 8 个质心连接在一起,其中只有彼此靠近的集群的质心连接“彼此之间有边界”,而彼此不接近的集群的质心没有连接。所以如果有人可以请建议?

    C=
    -0.214560757496055  0.208243029984219   1.27200000000000
    -0.170247238295634  0.399735227073470   1.14600000000000
    -0.0129089952656497 0.410839908819919   1.22700000000000
    -0.244488865509381  0.0526915658425390  1.20200000000000
    -0.391215149921094  0.258634052253200   1.23600000000000
    -0.258542872172541  0.307469752761704   1.18100000000000
    -0.346834999123269  0.413056286165176   1.16100000000000
    -0.0885709275819744 0.278674381904261   1.23200000000000

我已经按照建议使用了一些集群的质心,但是在非相邻集群的质心之间构建了一些不需要的连接“例如,集群顶部的质心与底部集群的质心”,如图所示,所以如果你能请教

X=C(:,1);
Y=C(:,2);
Z=C(:,3);
dt      = DelaunayTri(X,Y,Z); 
tetramesh(dt,'FaceColor', 'none');

资源

4

1 回答 1

2

正如@Dan 评论的那样,您正在寻找 Delaunay 三角剖分,它是 Voronoi 单元的对偶。

有关详细信息,请参阅https://en.wikipedia.org/wiki/Delaunay_triangulation 。

来自维基百科

图片版权信息:https ://en.wikipedia.org/wiki/File:Delaunay_Voronoi.png

黑点是集群“中心”。黑线是 Delaunay 三角剖分(这可能是您正在寻找的),而红线和点是 Voronoi 图。计算 Voronoi digaram 的常用方法实际上是首先执行 Deleaunay 三角剖分,然后与附近边的正交相交。

于 2013-08-05T09:26:19.400 回答