Page 105 - 数学建模算法与应用
P. 105

第三章  MATLAB 编程基础


                               sign = sign - 1;
                           end


                           if sign == 1
                               fprintf(‘%4d\n’, year)
                           end
                       end
                   end

                   按 F5 键再次执行程序,得到的运行结果如下:
                   >> leapyear
                   2000

                   2004
                   2008
                   分析发现,结果正确,此时程序调试结束


                   三、效率优化

                   在程序编写的初始阶段,用户通常将精力集中在程序功能的实现、程序结构、
               准确性和可读性上,而不考虑程序执行效率的问题。相反,他们只考虑在程序无

               法满足要求或效率过低时优化程序的性能。由于程序解决的问题不同,程序的效
               率优化也存在差异,这对程序员的经验和函数的编写和调用都有一定的要求。程
               序效率优化的一些一般建议如下。
                   根据所解决问题的需要,尝试预先分配足够大的阵列空间,以避免在循环结
               构的情况下增加阵列空间。然而,同样重要的是要注意阵列空间不应太大,因为

               太多的大型阵列会影响内存效率。例如,预先声明一个 8 位整型数组 A 时,语句
               A=repmat(int8(0),5000,5000) 比 A=int8zeros(5000,5000) 快 25 倍左右,且更
               节省内存。因为前者中的双精度 0 仅需一转换,然后直接申请 8 位整型内存;而

               后者不但需要为 zeros(5000,5000) 申请 double 型内存空间,而且还需要对每个
               元素都执行一次类型转换。需要注意的是:
                   ■ 尝试使用函数文件而不是脚本文件,因为运行函数文件通常比脚本文件
               更有效。



                                                                                       95
   100   101   102   103   104   105   106   107   108   109   110