How do I create a faster ordered vector without for loop
    7 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Oluwaseun Lijoka
 el 25 de Nov. de 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 comentarios
Respuesta aceptada
  Stephen23
      
      
 el 25 de Nov. de 2015
        
      Editada: Stephen23
      
      
 el 25 de Nov. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

