两组3D点之间的欧几里德距离

时间:2013-02-26 16:14:58

标签: matlab nearest-neighbor euclidean-distance

如何找到两组3D点的最近点(具有不同的数字,set1包括400个点,set2包括2000个点),然后找到set1与问题的第一部分之间的欧几里德距离?

2 个答案:

答案 0 :(得分:2)

您可以使用pdist2计算所有距离,然后选择最小距离。

allDist = squareform( pdist2( set1, set2 ) );
[minDist nni] = min( allDist, [], 2 ); 

现在minDist保持set1中每个点与其最近邻居(set2(nni))的最小距离。

修改
对于低维点(本例中为3),如my other answer中所提出的那样,查看k-NN算法应该更有效。

答案 1 :(得分:0)

您是否考虑过使用k-Nearest Neighbors (kNN)搜索?