matlab 动态分配内存,[Matlab科学计算之高效编程] 1. 预分配内存

通过对变量预分配内存可以大大降低计算耗时,下面举例说明。

1.没有预分配变量内存情况

clear

n = 2000;

tic;

for i=1:n

for j=1:n

a(i,j) = 1;

end

end

time = toc;

disp(['未预分配内存下计算时间为',num2str(time),'秒'])

计算时间为:

未预分配内存下计算时间为3.3465秒

2.预分配变量内存情况

clear

n = 2000;

tic;

a = zeros(n,n,'double');

for i=1:n

for j=1:n

a(i,j) = 1;

end

end

time = toc;

disp(['预分配内存下计算时间为',num2str(time),'秒'])

计算时间为:

预分配内存下计算时间为0.058691秒

可以看出时间大大降低。

3.预分配变量内存方式

a = zeros(n,n,'double') 和 a(n,n) = 0 以及 a = zeros(n,n) 是不一样的,第一种方式消耗时间最小。

>> clear

n = 40000;

tic;

a = zeros(n,n,'double');

time = toc;

disp(time)

0.0023

>> clear

n = 40000;

tic;

a(n,n) = 0;

time = toc;

disp(time)

0.0036

>> clear

n = 40000;

tic;

a = zeros(n,n);

time = toc;

disp(time)

0.0076

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值