How do I make the chi2rnd(size) Matlab function faster for big matrices?
    6 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Jorge
 el 11 de Jul. de 2015
  
    
    
    
    
    Comentada: Jorge
 el 14 de Jul. de 2015
            I'm running a program a couple thousand times, and the bottleneck of it is just creating the chi-squared noise matrix. It has size 2048 by 100,000 and it takes more than 80% of each iteration (I'm doing 'chi2rnd(2048, 1000,000)) Is there anyway to make this function faster? Or to code my own?
0 comentarios
Respuesta aceptada
  Alfonso Nieto-Castanon
      
 el 12 de Jul. de 2015
        
      Editada: Alfonso Nieto-Castanon
      
 el 12 de Jul. de 2015
  
      storing the chi2rnd(2048, 1000000) results require about 16Gb of memory, perhaps the extra time is due to memory-swapping rather than actually computing these values? (I suggest to evaluate whether your code actually needs the entire matrix being computed in a single step)
Más respuestas (1)
  Walter Roberson
      
      
 el 11 de Jul. de 2015
        chi2rnd() appears to be coded in terms of gamrnd(), so you could speed things up by calling gamrnd() directly; that would reduce the error checking overhead.
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


