How do I sample a random value from a normal distribution

I want to sample a value from a normal distribution and I wrote down this codes. Can someone please look at it and hint me if it is appropriate. I am Matlab basic user.
r=rand;
ci_l=find(cumu<=r,1,'last');
ci_h=find(cumu>=r,1,'first');
if abs(cumu(ci_l)-r)<=abs(cumu(ci_h)-r)
ci=ci_l;
else
ci=ci_h;
end
cmuO=getCDF(pdfY);
cmuO=cmuO/max(cmuO);
[~,idx]=min(abs(cmuO-cumu(ci)));
newVal=pdfX(idx);

7 comentarios

??
normrnd() perhaps ?
Gumps
Gumps el 17 de Abr. de 2019
Hi Walter,
What I meant is sampling just one random value from a normal distribution. I have typed the codes I generated. Do you think its sufficient?
I do not understand the point of any of that.
Is cumu a previously initialized vector of randn() values? Sorted output of randn() in particular?
I do not understand what you think you are calculating.
Gumps
Gumps el 17 de Abr. de 2019
Cumu is an existing distribution.
i therefore want to sample a random value from it.
Is Cumu a distribution created with makedist() https://www.mathworks.com/help/stats/makedist.html or is it a vector of values ? If it is a vector, is the vector sorted in increasing order?
Gumps
Gumps el 17 de Abr. de 2019
Cumu was created somewhat with code related with makedist().
YES
Is the "YES" intended to mean that Yes, it is a vector sorted in increasing order?

Iniciar sesión para comentar.

Preguntada:

el 17 de Abr. de 2019

Comentada:

el 18 de Abr. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by