Why is vertcat slowing things down?
Ältere Kommentare anzeigen
In the code below, 10,000 repetitions takes 2 seconds... and 100,000 repetitions takes 60 seconds! (I was expecting 20 seconds or less)...
What is going on? by a process of elimination, I suspect "vertcat" is slowing things down...
(Please see how "tic toc" behaves with repetitions = 10,000 and 100,000)
Is this a known issue with vertcat? If so, what are my other options?
(Note: looping the 10,000 algorithm 10 times would be much faster... but surely there has to be a more elegant way to do 100,000 repetitions in 20 seconds)
Thanks
Doron
*********
tic
repetitions = 10000
llim = -1;
ulim = 3;
xstack = [];
xlifestack = [];
for i = 1:repetitions
x = 0;
xlife = 0;
while ulim > x && x > llim
x = x + normrnd(0,1);
xlife = xlife + 1; % "...and the walk lives one more step"
end
if x > llim
x = ulim;
else x = llim;
end
xstack = vertcat(xstack, x);
xlifestack = vertcat(xlifestack, xlife);
end
xbar = mean(xstack);
xlifebar = mean(xlifestack);
toc
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Performance and Memory finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!