Creating Random Log Normal Distribution

1 次查看(过去 30 天)
I'm a bit confused with converting a normal distribution to a log normal and then creating random numbers. I'm not sure if what I'm doing is right or not?
For example, I have the following:
row = 1000;
G = [14000000 3600000 10000000];
Mean = G;
Variance = Mean .* 0.5;
mu = log(Mean.^2./sqrt(Variance+Mean.^2));
sigma = sqrt(log(1+Variance./Mean.^2));
GIP = zeros(row,length(G));
for i = 1:length(G)
R = longhorn(mu(i),sigma(i),[row,1]);
GIP(:,i) = R;
end
LogG = GIP;
The things with this nothing changed. However, if I converted G to G = G/10^6. Then, it will work but I have to convert LogG later to LogG = LogG * 10^6. I do not know why this happens. Does that because the number is too big? please help.
  6 个评论
Jeff Miller
Jeff Miller 2018-8-14
If you use (1), you will get lognormal random numbers. If you use (2), you will get normal random numbers. Another way to get lognormal random numbers is to use:
R = exp(normrnd(mu(i),sigma(i),row,1));
You should check these to make sure you are getting what you think you are getting:
meanR = mean(R)
stdR = std(R)
figure; histogram(R);

请先登录,再进行评论。

回答(0 个)

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by