如何找到两组3D点的最近点(具有不同的数字,set1包括400个点,set2包括2000个点),然后找到set1与问题的第一部分之间的欧几里德距离?
答案 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)
搜索?