标题:看看matlab内置函数的效率
取消只看楼主
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
 问题点数:0 回复次数:4 
看看matlab内置函数的效率

一直都说向量化函数的效率很高,编程比较了一下,果然
求1到1000000整数的和,分别用for循环,while循环,和sum函数,运行显示如下:

ans =

using sum


s =

5.0000e+011


elapsed_time =

0.0470


ans =

using for


s =

5.0000e+011


elapsed_time =

1.1090


ans =

using while


s =

5.0000e+011


elapsed_time =

2.7500


化成整数的时间费用比就是1:24:58,呵呵,差得比较大啊

搜索更多相关主题的帖子: matlab 函数 效率 
2006-06-12 21:33
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
得分:0 

和你的第一种处理方法一样,不过偶的版本是6.5
你应该是7.0吧


此人已消失
2006-06-13 12:19
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
得分:0 

按Genial说的是这样子的:

>> clear all
tic;s=0;
for i=1:1000000
s=s+i;
end
s
disp('use for');toc
clear all
tic;s=0;i=0;
while i<1000000
s=s+i;
i=i+1;
end
s
disp('use while');toc
clear all
tic;
i=1:1000000;
s=sum(i)
disp('use sum');toc

s =

5.0000e+011

use for

elapsed_time =

1.1870


s =

5.0000e+011

use while

elapsed_time =

3.0780


s =

5.0000e+011

use sum

elapsed_time =

0.0470

◣◣◣◣◣◣去掉代码中间的clear all的执行结果是◥◥◥◥◥◥

s =

5.0000e+011

use for

elapsed_time =

1.2030


s =

5.0000e+011

use while

elapsed_time =

3.0780


s =

5.0000e+011

use sum

elapsed_time =

0.0310

用sum还是比较快。一般书中推荐的优化matlab执行效率时,也包括了向量化执行的方法


此人已消失
2006-06-13 19:59
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
得分:0 
以下是引用zhangenter在2006-6-13 0:54:47的发言:

。。。。。。。。

不过当三个程序段放到三个m文件里分别执行的时候,还是
use for
Elapsed time is 0.015000 seconds.
use while
Elapsed time is 0.016000 seconds.
use sum
Elapsed time is 0.047000 seconds.
不知道楼主的for和while用的什么程序段

怎么会这样子呢?偶很想知道。。。


此人已消失
2006-06-13 20:04
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
得分:0 

呵呵,不行啦,我这里for循环竟然运行时间时而为0,时而为0.016,反而sum用的时间最多

可能这样的检测方法不对,因为sum中分配的内存空间太多了。


此人已消失
2006-06-13 22:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-71771-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.099644 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved