【发布时间】:2012-07-15 22:23:03
【问题描述】:
尽管 MATLAB 作为一种数学语言很出色,但它的速度却没有它想象的那么快。我想知道加快运行 MATLAB 代码的一般做法是什么?例如,我知道如果不是运行 for 循环,而是可以以向量/矩阵格式进行计算,那么他/她将看到运行代码的速度加快。
我想知道还有什么其他建议。
【问题讨论】:
标签: performance matlab
尽管 MATLAB 作为一种数学语言很出色,但它的速度却没有它想象的那么快。我想知道加快运行 MATLAB 代码的一般做法是什么?例如,我知道如果不是运行 for 循环,而是可以以向量/矩阵格式进行计算,那么他/她将看到运行代码的速度加快。
我想知道还有什么其他建议。
【问题讨论】:
标签: performance matlab
以下是一些基本的性能提示:
bsxfun)【讨论】:
如果您正在执行大量易于并行化的操作,parfor 将自动并行化您的 for 循环:http://www.mathworks.com/help/toolbox/distcomp/parfor.html
【讨论】:
parfor 循环可能比正常的for 循环还要慢。
安装 Lightspeed。
我最近经历了在我的 Mac 上安装 Tom Minka 的 Lightspeed 的令人沮丧的过程。在此过程中,我学到了一些值得与其他 Mac 用户分享的艰巨经验。 我的系统具有以下规格 OS X 版本 10.8.5 Xcode 版本 4.6.3 Matlab 2011a版
1) 确保 Lightspeed 安装在名称中没有空格的路径上。我错误地将它放在“库/应用程序支持/Matlab”中,这给我带来了无穷无尽的麻烦。特别是,它导致了 Tomer Levinboim (levinboim.blogspot.co.nz) 报告的相同问题,并增加了他的修复并没有完全解决问题的问题!
2) 阅读 Michel Valstar 的笔记“在 Mac 上编译 Matlab Mex 文件”并安装推荐的 Mathworks 补丁 (http://www.mathworks.com/matlabcentral/answers/94092)。此补丁应用了 Levinboim 确定的所有需要的标志/选项更改。
3) 将光速文件夹内 install_lightspeed.m 文件中的 options.COMPFLAGS 行更改为指向:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
4) 在 Matlab 中检查当前路径是否指向 Lightspeed 文件夹。运行命令 install_lightspeed。如果成功运行 test_lightspeed。您现在应该拥有 Lightspeed 的工作版本!
5) 路径设置在会话之间保持不变,因此自述文件中建议的 startup.sh 方法在 Mac 上似乎是不必要的。但是,如果您想走这条路,请先阅读:
Where is startup.m supposed to be?
http://obasic.net/set-your-customized-startup-file-for-matlab.
【讨论】:
我刚刚在这里找到了这个:Writing Fast MATLAB Code。 Pascal Getreuer 和这里:Lightspeed Toolbox。好东西……
【讨论】: