找到每个点的第n个最近邻居

时间:2017-09-20 04:48:48

标签: matlab

我在名为M的N×N矩阵中的某些点之间有距离。 M(i,j)是点ij之间的距离。当然,M是对称矩阵。我想要一个向量CC(i)显示粒子数i与其第七个邻居之间的距离。

这样做的最佳方式(耗时少)是什么? (N非常大,我想在for循环中执行此操作)。有人可以帮帮我吗? 点号i的第7个邻居是第7个点,接近i(距离近)。

1 个答案:

答案 0 :(得分:2)

您可以先对每个点的距离进行排序

dist_srt = sort(M)

然后提取每个点的第7个距离(即整个第7行M

dist_neigh = dist_srt(7,:)

这没有利用M是对称的事实 - 如果遇到性能问题,你应该考虑这样做。