我有16个1D数组,每个数组大约有10-11百万个双精度元素。我需要在它们之间执行互相关,即,1与2,1与3,...,1与16,2与3,2与4,...,2与16等等。这在我的MacBook Intel Core 2 duo 2.4 GHz,4GB内存上无法高效完成。我的问题是,什么是典型的方法,即使不是蛮力(更快的处理器,更多的RAM),人们用来克服这个问题,还是像它这样的问题?谢谢!中等大小阵列的互相关
3
A
回答
2
如果计算每个阵列的傅里叶变换,您应该使用 可以使用变换后的阵列来高效计算每对原始输入阵列之间的cross-correlation。请参阅 维基百科文章的“属性”部分,我链接到要使用的身份。
1
numpy中的互相关函数是慢得可笑的。 openCV库有一个numpy友好的互相关函数可用。即使您尝试实现频域方法,您也不会击败openCV库,因为有更多技巧可用于加速互相关计算。我张贴了关于在此之前:
Computing cross-correlation function?
我相信代码是基于下面的文件中详述的招数:在视觉接口,1995
JP刘易斯,“快速模板匹配”,第一卷。 95,第120-123页。
相关问题
- 1. CUDA减少许多小的,不相等大小的阵列
- 2. R:合并两个相等大小的阵列
- 3. 拆分成相等大小的窗口阵列
- 4. 列出熊猫中大相关矩阵的最高相关对?
- 5. 交互相关矩阵
- 6. SDL_CreateWindow大小/屏幕分辨率/ SDL_Logical大小之间的相互关系大小
- 7. 最大阵列大小是否等于RAM大小?
- 8. 小部件的相互调整大小
- 9. 的UIImageView和大小相等
- 10. 相等大小Gradiant - 的Java2D
- 11. 将阵列互相合并
- 12. 矩阵中不同时间序列的互相关
- 13. 大矩阵中最大的相等子矩阵
- 14. 只有部分矩阵的互相关
- 15. 矩阵的空间互相关字段
- 16. 遍历大小相等
- 17. 与阵列相关
- 18. 按元素求和几个相等大小的矩阵
- 19. 调整大阵列大小
- 20. 大小NumPy的阵列的
- 21. 每三列相互关联
- 22. 将分割列表分成“最大”相等大小的块
- 23. 如何绘制时间序列的互相关矩阵?
- 24. 分布式互相关矩阵计算
- 25. 可视化完整互相关矩阵
- 26. 阵列的大小(新[])
- 27. 未知大小的阵列
- 28. 计算阵列的大小
- 29. 动态大小的阵列
- 30. 最小化阵列中相关项目之间的距离
我知道这个身份。我使用NumPy,它直接计算互相关。用这个标识来计算互相关是否会显着加快计算速度,即足够让我不必在一夜之间运行它? – 2012-04-04 22:48:59
@cpcloud:我不是Python专家,但我搜索了一下,发现SO上的其他地方有答案,声称NumPy没有使用FFT技术。 (所以如果一个阵列比另一个阵列小得多,但是对于你所关心的情况来说速度会很慢)。计算一千万点阵列的FFT不应该花太长时间,如果您使用傅立叶身份实施互相关程序,则期望看到显着的加速。 – 2012-04-04 23:08:30
谢谢!你能发布一个链接到你找到这些信息的地方吗?非常感激! – 2012-04-04 23:18:46