• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

初学matlab编程运算速度的一些优化

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

学习了matlab了之后发现编程的技巧很重要,掌握了正确的编程技巧之后计算速度会加快非常多,尤其是面对一些规模庞大的问题,可以减轻计算机的负担。

我了解到优化matlab代码的一种方法是对于循环内的大数组进行预先定义、分配空间。

用两个例子可以对比分配内存的区别

tic 
 x=1;
 x(2)=2;
 x(3)=3;
 x(4)=4;
 x(5)=5;
 toc

  

 tic 
 y=zeros(4,1);
 y=1;
 y(2)=2;
 y(3)=3;
 y(4)=4;
 y(5)=5;
 toc

前者花费的时间接近后者的十倍

利用tic与toc命令计算运算所用时间的方法,测试两种编程的效率

通过下列代码对比预先分配空间(t1)和运行中分配空间(t2)的运算速度

n = 50;
m = 1000;
for k = 1:n
   A = [];
   tic
   A(1:m,1:m) = 3;
   for i = 1:m
       A(i,i) = i;
   end
   t1(k) = toc
   A = [];
   tic
   for j = 1:m
       A(j,j) = j;
   end
   t2(k) = toc
end
t2(t1>10^9) = [];
t1(t1>10^9) = [];
plot([t1;t2]\')

 

通过下图可以看出比较明显的区别

之后我添加一条代码      plot([t1;t2]\'),让数据更加直观(上为t2,下为t1)

 

完整代码

n = 50;
m = 1000;
for k = 1:n
   A = [];
   tic
   A(1:m,1:m) = 3;
   for i = 1:m
       A(i,i) = i;
   end
   t1(k) = toc
   A = [];
   tic
   for j = 1:m
       A(j,j) = j;
   end
   t2(k) = toc
end
t2(t1>10^9) = [];
t1(t1>10^9) = [];
plot([t1;t2]\')

 

 通过一系列实践就可以看出不同的编程方式对于matlab计算速度的影响了,可见算法的重要性

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab调试发布时间:2022-07-18
下一篇:
delphi年月日自动加一减一函数,月加一,月减一发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap