Normal random number generation
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I want to generate some random numbers which should lie between 0 and 1. Also those values should follow nornal ditribution. Is there any readymade function for it, in MATLAB?
1 Kommentar
Dyuman Joshi
am 22 Sep. 2022
Bearbeitet: Dyuman Joshi
am 22 Sep. 2022
You can normalize the data in between 0 to 1, though I am not sure if it will still follow normal distribution or not.
y=randn(1,7)
y=(y-min(y))/(max(y)-min(y))
I also recommend you check out these comments -
Antworten (2)
Torsten
am 22 Sep. 2022
Bearbeitet: Torsten
am 22 Sep. 2022
pd = makedist('Normal');
t = truncate(pd,0,1);
r = random(t,1e6,1);
figure(1)
histogram(r,100)
Or directly:
r = -sqrt(2)*erfinv(rand(1e6,1)*erf(-1/sqrt(2)));
figure(2)
histogram(r,100)
Of course, the random numbers are not normally distributed in the usual sense.
1 Kommentar
Dyuman Joshi
am 22 Sep. 2022
Quite a neat function.
However, OP might not have access to Stats and ML toolboox.
Bruno Luong
am 22 Sep. 2022
Here is an alternatve without stats tbx
X=TruncatedGaussian(-1,[0 1],[1, 1e6]);
histogram(X)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Descriptive Statistics and Visualization finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!