How to generate random numbers in a Gaussian distribution?

109 Ansichten (letzte 30 Tage)
Ali Almakhmari
Ali Almakhmari am 7 Feb. 2023
Beantwortet: Swaraj am 8 Feb. 2023
Given A = 1 and B = 5, and knowing that the mean is 2.5 and the standard deviation is 1, I want to generate 1000 random points between A and B using a normal (Gaussian) distribution. I am unsure how to do this in MATLAB efficienctly.
  6 Kommentare
Walter Roberson
Walter Roberson am 7 Feb. 2023
values = mean + randn(1000,1) * sigma;
The repmat() is valid, but slower than needed for this purpose.
Ali Almakhmari
Ali Almakhmari am 7 Feb. 2023
I see. Thank you all so much!!

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Swaraj
Swaraj am 8 Feb. 2023
You can use the randn function in MATLAB.
You can follow the following steps:
  1. Generate Random Numbers from a standard normal distribution.
  2. Scale and shift them to match the desired Mean and Standard Deviation.
Please go through the code below:
A = 1;
B = 5;
std = 1;
mean = 2.5;
step1Result = mean + std * randn(1000,1);
step2Result = min(max(step1Result,A),B);

Weitere Antworten (0)

Kategorien

Mehr zu Random Number Generation finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by