20 value from a normal distribution..

3 visualizaciones (últimos 30 días)
joy
joy el 7 de Mayo de 2015
Comentada: joy el 7 de Mayo de 2015
Hi,
I have mu and sigma (stand deviation) i.e. mean=20 and sigma=4. I am generating data with normal distribution from these parameters.
I need to select 20 values ranges between 8 to 32 from this distribution..How to do so?
Thanks in advance
Mu = 20;
sigma = 4;
N = normrnd(Mu, sigma, 100000, 1);
N=round(N);
hist(N,0:1:60);

Respuesta aceptada

Michael Haderlein
Michael Haderlein el 7 de Mayo de 2015
Editada: Michael Haderlein el 7 de Mayo de 2015
First, make sure that there are enough numbers available (with the values you use, this might not be a problem):
lo=8;hi=32;num=20;
while sum(N>=lo & N<=hi)<num
N(N<lo | N>hi)=round(normrnd(Mu,sigma,sum(N<lo | N>hi),1));
end
Then, take the first 20 values which are in the respective interval:
ind=find(N>=lo & N<hi,num,'first');
N(ind)
  5 comentarios
Michael Haderlein
Michael Haderlein el 7 de Mayo de 2015
Looks good. You don't need to round again when you create q. Also, instead of num/2, you can use p1 again. When finding the indices, you have N<hi instead of N<=hi. The rest should be fine.
joy
joy el 7 de Mayo de 2015
Thank you. I shall make those corrections.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by