Comparison for/vectorization- some general advice
Show older comments
Hi, i'm trying to vectorize my code. But i have recently found this:
clear all;
tic
k=zeros([1,10000]);
a=1:10000;
k(a)=rand;
toc
tic
g=zeros([1,10000]);
for i=1:10000;
g(i)=rand;
end
toc
Elapsed time is 0.030372 seconds.
Elapsed time is 0.013857 seconds.
(Obviously) Every time tic/toc time changes a bit but there is always this kind of gap. In Matlab a vectorized code is faster than a loop code so i dont understand this result.
On the contrary i have also found:
clear all;
tic
k=zeros([1,1000000]);
a=1:1000000;
k(a)=rand;
toc
tic
g=zeros([1,1000000]);
for i=1:1000000;
g(i)=rand;
end
toc
Elapsed time is 0.034189 seconds.
Elapsed time is 0.045542 seconds.
Maybe the for loop with preallocation is not so bad but the difference between them rises when the length of the array grows. Tell me what u think and please give me some advice for a good vectorization
Accepted Answer
More Answers (0)
Categories
Find more on Get Started with MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!