这是988x3矩阵的子集(3D对象的顶点):
假设第一个顶点的7个最近邻居是v(2),v(20),v(5),v(15),v(19),v(50)和v(23)。我们根据这个条件选择另一个顶点并找到它的7个最近邻居:新顶点及其7个最近邻居不应该来自最后选择的最近邻居。我简而言之,我想根据knnsearch从988个顶点列表中创建8个不同顶点的簇。我们怎么能在MATLAB中做到这一点?
答案 0 :(得分:0)
kd-trees可以在这里提供帮助。
它有一个名为kdtree_k_nearest_neighbors
的函数。
在伪代码中
construct kd-tree
Pick random point
find k-nearest neighbors
store indices
remove point and k-nearest neighbors from set
*repeat*