2013-08-05 73 views
0

我已经使用K-means使用此[X,C] = kmeans(XX, 8]将数据聚类成8个不同的簇,这意味着我有8个质心,它们的位置存储在C“在X Y Z下面显示为coloumns”的示例中。我想将8个质心连接在一起,其中只有彼此靠近的簇的质心连接“彼此具有边界”,而彼此不接近的簇的质心未连接。所以如果有人可以请指教?加入邻居簇质心Matlab

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'); 

res

+1

也许看看Delaunay三角测量:http://www.mathworks.com/help/matlab/ref/delaunay.html – Dan

回答

2

正如@丹评论,你正在寻找德洛内三角,这是双重的Voronoi单元中。

查看https://en.wikipedia.org/wiki/Delaunay_triangulation了解更多详情。

From Wikipedia

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

黑点集群 “中心”。黑线是Delaunay Triangulation(这可能是您要查找的内容),而红线和点是Voronoi图。计算Voronoi digaram的常用方法实际上是首先执行Deleaunay Triangulation,然后与相邻边缘的正交相交。

+0

我已经更新了这个问题,所以如果你可以请检查它,谢谢你 – Tak

+0

有似乎是计算出的三角测量中的错误,或者您使用它的方式。 'freeBoundary'似乎不合适;你实际上想要所有的三角形边缘。 –

+0

我已经更新了问题,现在的问题是在非邻居集群的质心之间构建了一些不需要的连接,例如“集群顶部的质心与底部集群的质心”之间,请问您可以提供建议吗? – Tak