matlab 动态分配内存,[Matlab科学计算之高效编程] 1. 预分配内存
通過對(duì)變量預(yù)分配內(nèi)存可以大大降低計(jì)算耗時(shí),下面舉例說明。
1.沒有預(yù)分配變量內(nèi)存情況
clear
n = 2000;
tic;
for i=1:n
for j=1:n
a(i,j) = 1;
end
end
time = toc;
disp(['未預(yù)分配內(nèi)存下計(jì)算時(shí)間為',num2str(time),'秒'])
計(jì)算時(shí)間為:
未預(yù)分配內(nèi)存下計(jì)算時(shí)間為3.3465秒
2.預(yù)分配變量內(nèi)存情況
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(['預(yù)分配內(nèi)存下計(jì)算時(shí)間為',num2str(time),'秒'])
計(jì)算時(shí)間為:
預(yù)分配內(nèi)存下計(jì)算時(shí)間為0.058691秒
可以看出時(shí)間大大降低。
3.預(yù)分配變量內(nèi)存方式
a = zeros(n,n,'double') 和 a(n,n) = 0 以及 a = zeros(n,n) 是不一樣的,第一種方式消耗時(shí)間最小。
>> 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
總結(jié)
以上是生活随笔為你收集整理的matlab 动态分配内存,[Matlab科学计算之高效编程] 1. 预分配内存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水解聚丙烯酰胺 php,聚丙烯酰胺水溶液
- 下一篇: 八数码c语言编程深度搜索,广度优先搜索解