如何更快地执行Matlab程序?

分享于 

2分钟阅读

电脑

  繁體

问题:

有什么技术可以使MATLAB代码更快地执行?


回答 1:

是MATLAB在您的计算机上运行缓慢,还是您在MATLAB中编写的程序运行缓慢?

MATLAB大量使用动态内存分配和重新分配。 MAtrix或数组的大小调整可能非常缓慢且不确定。如果矩阵或数组增长,则会分配新的内存并将现有数据复制到新的内存,然后再删除旧的副本。 你可以通过预先分配此类数组来避免这种内存抖动: 例如这个代码:


x = 0;


for k = 2:1000


 x(k) = x(k-1) + 5;


end



使 x 在每次迭代时调整大小,并且运行速度很慢。 通过比较下面的代码:


x = zeros(1, 1000);


for k = 2:1000


 x(k) = x(k-1) + 5;


end



预分配数组,这样就不会发生大小调整,并且运行速度会更快。

MathWorks网站有一个完整的网页页面,详细介绍了这个和其它性能改进技术;页面涵盖了以下内容:

  • 预分配数组
  • 对大型数据集使用分布式阵列
  • 可能时,用parfor替换( 并行)
  • 限制大小和复杂性
  • 分配给变量
  • 使用适当的逻辑运算符
  • 函数中内置的重载
  • 函数通常比脚本快
  • 加载和保存比文件I/O功能更快
  • 矢量化循环
  • 避免大的后台进程

回答 2:

可以使用MATLAB分析工具来检查程序的大部分时间, 专注于优化那些行。


回答 3:

使用探查器工具来确定时间。

  • 使你的算法在内存方面更有效。

  • 如果当前的内存少于 2 GB,则获取更多内存。

  • 使用MATLAB的64位版本以及获得更多的内存。



fast  MAKE  MAT  EXE  EXEC  faster  
相关文章