我在2d平面上有一组点(x,y)。给定一个点(x0,y0)和数k,如何找到点集中(x0,x0)的第k个最近邻点。详细地说,点集由两个数组表示:x和y。点(x0,y0)由索引i0给出。它意味着x0 = x(i0)和y0 = y(i0)。如何找到一组点中第k个点的最近邻点
是否有任何功能或Matlab的东西可以帮助我解决这个问题。如果Matlab没有这样的功能,你能否提出其他有效的方法。
编辑:我必须为集合中的每个点(x0,y0)计算这种距离。该集合的大小约为1000. k的值应大约为sqrt(1500)。最糟糕的是我做了很多次。在每次迭代中,设置发生变化,然后再次计算距离。所以,运行时间是一个关键问题。
是的。我会为这组中的每一点做到这一点。所以,某种距离表有助于节省运行时间。我将发现squareform函数在我的问题中如何工作。非常感谢你。 – 2012-02-23 03:34:39
其实函数是pdist,squareform只是使pdist的向量输出 – zamazalotta 2012-02-23 06:51:19
出一个方阵,谢谢zamazalotta。我知道了。 – 2012-02-23 07:24:55