我们如何使用knnsearch创建三维矩阵行?

时间:2017-08-16 10:34:12

标签: matlab

这是988x3矩阵的子集(3D对象的顶点):

  1. 2 3 4
  2. 1 2 3
  3. 8 5 2
  4. 6 2 4
  5. 7 8 9
  6. 9 5 1
  7. 3 5 8
  8. 6 5 7
  9. 1 2 8
  10. 。 。
  11. 假设第一个顶点的7个最近邻居是v(2),v(20),v(5),v(15),v(19),v(50)和v(23)。我们根据这个条件选择另一个顶点并找到它的7个最近邻居:新顶点及其7个最近邻居不应该来自最后选择的最近邻居。我简而言之,我想根据knnsearch从988个顶点列表中创建8个不同顶点的簇。我们怎么能在MATLAB中做到这一点?

1 个答案:

答案 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*