我有很多3D数据点,我希望在此图中找到“连接组件”。这是形成具有以下属性的集群的地方:
问题和答案here中描述了此问题。
是否有内置或可在FEX上使用的此类算法的MATLAB实现?简单的搜索没有抛出任何有用的东西。
答案 0 :(得分:1)
答案 1 :(得分:0)
我不认为在所有情况下都可以满足这两个条件。
如果您决定专注于第一个条件,则可以使用Complete-Linkage层次聚类,其中根据任意两点之间的最大距离合并点或点组。在Matlab中,这是在CLUSTERDATA中实现的(请参阅各个功能步骤的帮助)。
要计算您的群集索引,您需要运行
clusterIndex = clusterdata(coordiantes,maxDistance,'criterion','distance','linkage','complete','distance','euclidean')
如果您想要简单地消除小于minDistance的不同群集的点,您可以在群集之间运行pdist
来清理连接的组件。
答案 2 :(得分:0)
k-means或k-medoid算法可能很有用。