The command normrnd times a scalar
Show older comments
Hi,
I would like to know how Matlab understands the following:
eta=normrnd(0,sigma)/100
Is this command going to re-scale eta by 100 or multiply the normrnd(0,sigma) by 1/100 and therefore the variance is (sigma/100)^(2)
Can somone clarify this point for me ?
Many thanks
Answers (1)
Walter Roberson
on 12 Jul 2015
0 votes
It is going to multiply by 1/100.
4 Comments
msh
on 12 Jul 2015
Walter Roberson
on 12 Jul 2015
eta=normrnd(0,sigma)/100 is identical to the pair of lines of code. normrnd() is computed and the result is divided by 100. normrnd() does not know anything about the division. It is not, for example, the same as eta=normrnd(0,sigma/100) .
When you rescale a random variable you change the variance of the random variable. You cannot separate rescaling and changing the variance.
msh
on 12 Jul 2015
Walter Roberson
on 12 Jul 2015
normrnd is randn() * sigma + mu. Your mu is 0, so your normrnd() calls are randn() * sigma . It then does not matter if you pass sigma/100 or if you divide the result of the normrnd() by 100.
If the mu was not 0 then the two situations would not be the same.
Categories
Find more on Random Number Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!