How do I sample a random value from a normal distribution
Show older comments
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 Comments
Walter Roberson
on 17 Apr 2019
??
normrnd() perhaps ?
Gumps
on 17 Apr 2019
Walter Roberson
on 17 Apr 2019
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
on 17 Apr 2019
Walter Roberson
on 17 Apr 2019
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
on 17 Apr 2019
Walter Roberson
on 18 Apr 2019
Is the "YES" intended to mean that Yes, it is a vector sorted in increasing order?
Answers (1)
James Tursa
on 17 Apr 2019
doc randn
Categories
Find more on Uniform Distribution (Continuous) in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!