如何消除matlab中数组大小在改变的警告?
来源:网络收集 点击: 时间:2024-06-09首先,点击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-1)的代码---ctrl+R将其注释掉(2-2)---点击(2-3)Save。


输入(3-1)所示的代码---点击Run(3-2)。运行时间为0.000854秒。
代码如下:
m=zeros(100000,1); %事先开辟一个100000行1列的0数组。
tic %计时开始
for i=1:100000
m(i)=i;
end
toc % 计时结束


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

下面对一个二维数组,进行同样的比较。
代码如下:
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倍之多。

试图以最简单的算例讲述问题的解决方法,至于其他可举一反三!
希望对您有所帮助!对初学者来说这个还是很必要的!
matlab版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_893598.html