广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    如何消除matlab中数组大小在改变的警告?

    来源:网络收集  点击:  时间:2024-06-09
    【导读】:
    在使用matlab时,经常会遇到下图中的这种提示:the variable appears to change size on every loop iteration。。。对于这种情况来说,虽然不会对计算结果产生影响,但是会极大地影响计算速度。应该如何避免这种情况的发生呢?工具/原料more电脑,matlab方法/步骤1/6分步阅读

    首先,点击New(1-1)---Script(1-2)---输入(1-3)的代码--点击(1-4)的Run。可看到(1-5)所示的运算时间为0.007708秒。

    代码如下:

    % the variable appears to change size on every loop iteration

    %解决方法

    tic %计时开始

    for i=1:100000

    m(i)=i;

    end

    toc %计时结束

    2/6

    选中(2-1)的代码---ctrl+R将其注释掉(2-2)---点击(2-3)Save。

    3/6

    输入(3-1)所示的代码---点击Run(3-2)。运行时间为0.000854秒。

    代码如下:

    m=zeros(100000,1); %事先开辟一个100000行1列的0数组。

    tic %计时开始

    for i=1:100000

    m(i)=i;

    end

    toc % 计时结束

    4/6

    可见,二者的比值:0.007708/0.000854=9.0258。可见改进后速度是改进前的9.0258倍。

    5/6

    下面对一个二维数组,进行同样的比较。

    代码如下:

    tic %计时开始

    for i=1:100000

    for j=1:10

    m(i,j)=i;

    end

    end

    toc %计时结束

    m=zeros(100000,10); %事先开辟一个100000行10列的0数组。

    tic %计时开始

    for i=1:100000

    for j=1:10

    m(i,j)=i;

    end

    end

    toc % 计时结束

    我们看到改进后m下面的黄色警告线已经消失了!

    6/6

    可见改进后是改进的6倍之多。

    注意事项

    试图以最简单的算例讲述问题的解决方法,至于其他可举一反三!

    希望对您有所帮助!对初学者来说这个还是很必要的!

    matlab
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_893598.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 04:03:51  耗时:0.030
    0.0304s