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

