加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

转自饮水思源——matlab数组扩展大小的三种方法及其比较

(2014-03-06 14:43:40)
matlab中可以无需定义而直接使用
当遇到需要不断扩展的向量时,有三种方法来扩展

1.a=[a,new] 2.a(end+1)=new 3.预先定义a=zeros(length) 然后a(i)=new 比较一下三种方法的运算速度,在win7 matlab2012a 环境下:
 a=1;
tic
for i=2:100000
    a=[a,1];
end
toc

a=1;
tic
for i=2:100000
 a(i)=1;
end
toc

tic
a=zeros(1,100000);
for i=2:100000
   a(i)=1;
end
toc
结果:
Elapsed time is 13.368765 seconds.
Elapsed time is 0.029842 seconds.
Elapsed time is 0.004913 seconds.
结论: 1.先定义好数组维度肯定是运算最快的方法 2.当实际情况中不能先定义维度时,使用新元素复制方法 即a(end)=new 注:a(end)会自动找到a的最后一个元素 3.尽量不要使用分块数组重构方式 即不要使用a=[a,new]这种方式,其耗时远高于另两种方式

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有