Matlab 算法时间比较

matlab程序的编写也要注意执行效率,下面以三段程序为例,讲讲如何提高程序的效率
matlab中有tic和toc命令来记录一段程序的cpu使用时间,可以用help tic命令查看相应的说明
先看第一段程序
clear all
clc
tic
for a=0:1:10000
b(a+1)=a^2-a+1;
end
toc
执行结果如下:Elapsed time is 0.244107 seconds.
>>
再看第二段程序
clear all
clc
tic
b(1:10001)=0;
for a=0:1:10000
b(a+1)=a^2-a+1;
end
toc
与第一段程序的区别在于预先分配了b向量的空间大小,执行结果如下:
Elapsed time is 0.000459 seconds.
>>
最后看第三段程序
clear all
clc
tic
a=0:1:10000;
b=a.^2-a+1;
toc
这段程序与前面的区别在于不采用循环的方式运算
执行结果如下:
Elapsed time is 0.000311 seconds.
>>
从上面的实例可以明显的看出这三种方式编程的优缺点所在,最后一种向量运算方式最为节约CPUtime,而第二段程序由于事先分配了空间,相比于第一段程序执行效率明显的提高,而第三种方式在数据量更大的情况下,将会比第二种方式表现出更强的优越性
Tags: 

延伸阅读

最新评论

发表评论