rangesearch的问题(Matlab)

时间:2017-07-04 20:14:05

标签: matlab nearest-neighbor

我试图在matlab中使用rangesearch函数找到最近的邻居。我已经做了很长时间了,现在我开始面对一些未知问题。

我之前已经为大尺寸(6 Mil)运行了范围搜索,并且获得了成功。现在我试图以0.3 M的速度运行它并且它需要永远消耗大约50 GB的内存。有人可以帮忙吗?

我附上了测试文件here,下面给出了简单的代码 -

Glist =dlmread('test');
[idx,dist]= rangesearch(Glist,Glist,12);

1 个答案:

答案 0 :(得分:0)

我有一个建议,但不能把它放在评论部分,因为我的分数较少。

无论如何,你确定你必须搜索Glist中的每一个点吗?因为它有大约0.3M点,所以需要一些时间。当然,它会占用一个巨大的内存空间,因为每个点创建一个单元格,其中包含数百到数千的点。所以,我建议从一小堆点开始,并继续增加一堆的大小。例如,

tic; [idx,dist]= rangesearch(Glist,Glist(1:50000,:),12);toc

tic-toc组合为您提供了经过的时间。顺便说一下,在我的机器上,上面的命令花了大约80秒。并且,我不想超越它,因为时间会随着记忆而增加。