如何提高matlab运行效率

 我来答
就烦条0o
推荐于2017-12-16 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46487
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
  1. 并不是所有的代码都需要追求极致速度。使用 profile 命令来查看代码运行的瓶颈,找出最需要优化的点。

  2. 减少不必要的循环。
    不过,使用 arrayfun/cellfun/structfun
    通常并不会提高代码运行速度,它只是帮你把代码压缩成一行,以及消除一段缩进。你需要真正的矢量化你的代码。在代码矢量化技巧中,除了用类似
    bsxfun/cumsum/accumarray 这类「神器」外,其实更多情况下,只依靠点系列运算符(如:.*)、矩阵乘法、冒号(:)运算符、逻辑索引,以及 Matlab 内建的许多天生支持矢量化操作的函数,如 sin/sum/max/filter 等,就已经足够应付了。

  3. 做到 0 warning。许多影响代码运行性能的问题,Matlab 能够提前帮你预见到,并以 warning 的方式提醒你,例如:循环中大小不断增长的矩阵,不必要的 find 调用,或者 disp(sprintf('Hello world!')) 等等……

  4. 使用 mex 函数。通常我不推荐使用 mex 函数,因为太多人用它只是因为他们对 C/C++ 更熟悉,用 Matlab 却只会玩玩 plot(而且是连坐标轴标签都不画的那种)。但若真的有需求,mex 就是你最后的希望。详细情况,还是咨询文档吧。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式