我在二维平面上有一组点 (x,y)。给定一个点 (x0,y0) 和数字 k,如何在点集中找到 (x0,x0) 的第 k 个最近邻。具体来说,点集由两个数组表示:x 和 y。点 (x0,y0) 由索引 i0 给出。这意味着 x0=x(i0) 和 y0=y(i0)。
Matlab中是否有任何功能或东西可以帮助我解决这个问题。如果Matlab没有这种功能,您能否提出其他有效的方法。
编辑:我必须为集合中的每个点 (x0,y0) 计算这种距离。集合的大小约为 1000。k 的值应约为 sqrt(1500)。最糟糕的是,我这样做了很多次。在每次迭代中,集合都会发生变化,我会再次计算距离。因此,运行时间是一个关键问题。