【问题标题】:An issue with rangesearch (Matlab)范围搜索的问题(Matlab)
【发布时间】:2017-12-08 08:52:05
【问题描述】:

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

我之前曾针对大尺寸(6 百万)运行 rangesearch,并且成功了。现在我试图以 0.3 M 的速度运行它,它需要很长时间,并且消耗了大约 50 GB 的内存。有人可以帮忙吗?

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

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

【问题讨论】:

  • 这个问题可能与一个在 matlab [论坛主题][1] 中广泛讨论的错误有关。我遇到了同样的问题,这是在一个消耗大量内存的昂贵过程之后,matlab 永远不会像以前一样,即使在关闭并重新启动计算机后它也会变得非常慢。我还尝试删除没有解决的 matlab.prf。 [1]:mathworks.com/matlabcentral/answers/…

标签: matlab nearest-neighbor


【解决方案1】:

我有一个建议,但因为我的积分较少,所以无法在评论部分提出。

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

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

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

【讨论】:

    猜你喜欢
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多