找到最近的位置

时间:2014-07-09 18:48:20

标签: matlab

每天,我有(x,y)形式的10000个位置对;到目前为止,我已经收集了30天。我想从每天选择一个位置对,以便所有位置对具有相似的坐标(x,y)值。类似地,我的意思是任何两对之间的欧几里德距离最小化。如何在matlab中高效地完成它。因为蛮力,几乎是不可能的。

在暴力案件中,我们有10000 ^ 30种可能性,每次操作说需要10 ^ -9秒, 它将永远运行。

2 个答案:

答案 0 :(得分:1)

一个想法是使用k-means算法或其变体之一。它相对容易实现(它也是Statistics Toolbox的一部分),并且具有关于O(nkl)的运行时。

答案 1 :(得分:1)

分析所有可能性将确保您获得最佳效果。 如果您想要近似结果,可以考虑前两天并分析这两天的所有可能性并选择最佳结果。然后在第二天分析时保留先前获得的结果并找到最接近前两个的第三列的点。 通过这种方式,您将获得近似解,但计算复杂度较低。