How do I create a faster ordered vector without for loop
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Oluwaseun Lijoka
am 25 Nov. 2015
Bearbeitet: Stephen23
am 25 Nov. 2015
I discover that this pseudo code within my code makes my program slow probably because of the for loop and the fact that JJ is not pre-allocated. I will appreciate a faster idea.
JJ=[];
for j=0:p
JJ=[JJ; repmat(j,[1+((j+1)-1)*2,1])];
end
0 Kommentare
Akzeptierte Antwort
Stephen23
am 25 Nov. 2015
Bearbeitet: Stephen23
am 25 Nov. 2015
X = floor(sqrt(0:(p+1)^2-1))';
This is nearly fifty times faster (p=1000):
Elapsed time is 5.2233 seconds.
Elapsed time is 0.111006 seconds.
As p gets larger it will reach your memory limit very quickly: each magnitude increase in p causes a two-magnitude increase in the number of elements of the output vector.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!