MATLAB编程技巧.pdf
《MATLAB编程技巧.pdf》由会员分享,可在线阅读,更多相关《MATLAB编程技巧.pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MATLAB 编程技巧这里只介绍加快 MATLAB 程序编程效率的建议,其他内容请参见作者著作。因为 MATLAB 语言是一种解释性语言,所以有时 MATLAB 程序的执行速度不是很理想。这里将依照作者十多年的实际编程经验给出加快 MATLAB 程序执行速度的一些建议和体会。尽量避免使用循环:循环语句及循环体经常被认为是MATLAB 编程的瓶颈问题。改进这样的状况有两种方法:o尽量用向量化的运算来代替循环操作。我们将通过如下的例子来演示如何将一般的循环结构转换成向量化的语句。例 1考虑下面无穷级数求和问题:如果我们只求出其中前有限项,比如100,000 项之和(要精确地求出级数的和,无需求10
2、0000 项,几十项往往就能得出满意的精度。这里主要是为了演示循环运算向量化的优越性。),则可以采用下面的常规语句进行计算 tic,s=0;for i=1:100000,s=s+(1/2i+1/3i);end,s,toc s=1.5000 elapsed_time=1.9700 如果采用向量化的方法,则可以得出下面结果。可以看出,采取向量化的方法比常规循环运算效率要高得多。tic,i=1:100000;s=sum(1./2.i+1./3.i),toc s=1.5000 elapsed_time=0.3800 o在必须使用多重循环的情况下,如果两个循环执行的次数不同,则建议在循环的外环执行循环次
3、数少的,内环执行循环次数多的。这样也可以显著提高速度。例 2考虑生成一个5x10000 的 Hilbert 长方矩阵,该矩阵的定义是其第i 行第j 列元素为h_i,j=1/(i+j-1)。我们可以由下面语句比较先进行i=1:5 的循环和后进行该循环的耗时区别,其效果和前面分析的是一致的。tic for i=1:5 for j=1:10000 H(i,j)=1/(i+j-1);end end toc elapsed_time=8.6800 tic,for j=1:10000 for i=1:5 J(i,j)=1/(i+j-1);end end toc elapsed_time=25.7000 大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 编程 技巧
限制150内