5

尽管 MATLAB 作为一种数学语言很出色,但它的速度却没有它想象的那么快。我想知道加快运行 MATLAB 代码的一般做法是什么?例如,我知道如果不是运行 for 循环,而是可以以向量/矩阵格式进行计算,那么他/她将看到运行代码的加速。

我想知道还有什么其他建议。

4

5 回答 5

5

Here are a few basic performance tips:

  1. Learn to use the profiler to understand which parts of your computation are slow
  2. Limit the amounts of expensive function calls via vectorization
  3. Preassign arrays instead of growing them in loops
  4. Use multithreaded functions (such as bsxfun)
  5. Use the latest version of Matlab - there have been tremendous performance gains over the last 5 years
  6. Use the parallel toolbox for multicore and/or GPU processing
  7. Use efficient algorithms
  8. Use Java or C/C++ code where appropriate (though the speed-up can be disappointing)
于 2012-07-16T01:47:07.813 回答
4

如果您正在执行许多易于并行化的操作,parfor则会自动并行化您的for循环: http: //www.mathworks.com/help/toolbox/distcomp/parfor.html

于 2012-07-15T22:34:05.297 回答
2

安装光速。

我最近经历了在我的 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 上似乎是不必要的。但是,如果您想走这条路,请先阅读:
startup.m 应该在哪里? http://obasic.net/set-your-customized-startup-file-for-matlab

于 2013-12-26T03:16:27.613 回答
1

您可能会在这里开始回顾一些开始考虑矢量化的方法。在那之后,这里
给出的 PDF即使不完整,也提供了许多性能良好的 Matlab 习语。

于 2012-07-15T22:26:20.017 回答
0

我刚刚在这里找到了这个:Writing Fast MATLAB Code。由 Pascal Getreuer 和这里:Lightspeed 工具箱。好东西...

于 2012-08-05T17:48:42.873 回答