Normal random number generation

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
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 = 1×7
-2.3212 -0.6273 -0.4058 0.3280 0.0769 1.5305 -0.0685
y=(y-min(y))/(max(y)-min(y))
y = 1×7
0 0.4398 0.4973 0.6878 0.6226 1.0000 0.5849
I also recommend you check out these comments -

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Torsten
Torsten am 22 Sep. 2022
Bearbeitet: Torsten am 22 Sep. 2022

1 Stimme

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
Dyuman Joshi am 22 Sep. 2022
Quite a neat function.
However, OP might not have access to Stats and ML toolboox.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Encryption / Cryptography finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 22 Sep. 2022

Bearbeitet:

am 22 Sep. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by