这句话大致意思就是:

b = 0;

for i = 1:3

a(i) = b;

end

是说变量的长度是变化的,经常在循环里出现,比如上面这个例子,这样会影响计算速度,最好的办法是预先定义a的长度,比如

b = 0;

a = zeros(1,3);

for i = 1:3

a(i) = b;

end

所以,为了减少运行时间,在对特定大小的矩阵进行预分配内存可以实现

a(10000,20000) = 0;      %方法一,直接赋值为零  time=0.0021832秒.

a=zeros(10000,20000);   %方法二,用zeros函数,不指定数据类型  time=0.33531秒.

a=zeros(10000,20000,'double'); %方法三,用zeros函数,指定数据类型  time=0.0056734秒.

可以看出,第一种方法直接赋值,第三种方法用zeros函数指定数据类型是比较节约时间的预分配内存的方法。

原文:https://blog..net/xiaozhen_12/article/details/70168978

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐