我正在使用 DBScan 算法对一组点进行聚类。我有一组点的一组 ID,我有一组集群,其中每个集群都有一组点。我想在集群和点 ID 之间建立关联。
例如我有一组 ids { 1,2,3,4},现在如果我有两个集群并且两个集群有两个点,那么第一个集群的这两个点应该有 ids 1,2 和第二个一个 3,4。此外,如果我有 4 个集群并且每个集群有一个点,那么这些点的 ID 应该是 1、2、3 和 4。此外,如果我有两个集群,但一个集群有 3 个点,另一个集群有一个点,那么第一个簇的点的点的 ID 应该是 1,2,3,而第二个簇的点应该是 4。
我尝试对其进行编码,但我停止计算公式以实现该场景。
std::vector<int>_IDs;
// for each cluster
for( int j = 0; j<clusters.size();j++ )
{
// for each point in that cluster
for ( int i=0; i < clusters[j].m_Points.size(); i++)
{
// assign its ID from the _IDs array based and save it in Clusters Vector
clusters[j].m_IDs.push_back(_IDs[j+ i*clusters[j].m_Points.size()]);
}
}