How do I make the chi2rnd(size) Matlab function faster for big matrices?
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Jorge
il 11 Lug 2015
Commentato: Jorge
il 14 Lug 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 Commenti
Risposta accettata
Alfonso Nieto-Castanon
il 12 Lug 2015
Modificato: Alfonso Nieto-Castanon
il 12 Lug 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)
Più risposte (1)
Walter Roberson
il 11 Lug 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 Commenti
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!