Dear, I would like to generate random nmbers with a normal distribution. From the documentation I see that there are two functioncs that seem to make the same things. normrnd(mu,sigma) and random('Normal',mu,sigma)
I wrote these two simpole for-loop in order to evaluate time consumption of these two functions and I found that normrnd is less time-consuming than random. I don't understand this difference. Could you help me?
tic for i=1:1000000 ciao=ciao+normrnd(0,0.01); end toc
tic for i=1:1000000 ciao=ciao+random('Normal',0,0.01); end toc
Kind regards
Andrea Giostri

 Akzeptierte Antwort

Titus Edelhofer
Titus Edelhofer am 20 Jun. 2011

0 Stimmen

Hi,
if you open random with an editor and search for "normrnd", you will see, that random in fact calls normrnd. That's why it takes a little more time. On the other hand: if you call normrnd and random one time with N=1000000 instead of N calls in a loop, it won't make a difference at all ...
Titus

4 Kommentare

Andrew Newell
Andrew Newell am 20 Jun. 2011
There is also randn, which is slightly faster than either of the alternatives:
N = 10000;
mu = 0;
sigma = 0.01;
clear ciao
tic
ciao = sigma*sum(randn(N));
toc
clear ciao
tic
ciao = sum(normrnd(mu,sigma,N));
toc
clear ciao
tic
ciao = sum(random('Normal',mu,sigma,N));
toc
Elapsed time is 2.800175 seconds.
Elapsed time is 3.497521 seconds.
Elapsed time is 3.473260 seconds.
However, when I tried to increase N to 100000, my computer ran out of memory (and it has 12 GB).
Titus Edelhofer
Titus Edelhofer am 20 Jun. 2011
Hi Andrew,
common mistake I often do as well: randn(N) is not randn(N,1) but randn(N,N). I'm not surprised this will blow your memory with N=100000 ;-).
Titus
Andrew Newell
Andrew Newell am 20 Jun. 2011
Aaagh! Right at the top of http://www.mathworks.com/matlabcentral/answers/1759-dumb-mistakes-we-make-with-matlab! Thanks for reminding me.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Climate Science and Analysis 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!

Translated by