Generate samples from a normal distribution
Ältere Kommentare anzeigen
Hello,
I have a Gaussian mixture distribution which looks as attached. I now want to sample and generate 1000 samples from this and plot their histogram. I tried using randi function but it does not work. Please let me know how to do this.
y = randi(my_pdf,100); %%my_pdf is my distribution
Thanks!
5 Kommentare
Walter Roberson
am 25 Nov. 2016
Is that a continuous function or a discrete function?
Torsten
am 25 Nov. 2016
Could you explain the graphic in gmm.jpg ?
It's not a distribution generated with normpdf, not even a distribution ...
So what is it ?
Best wishes
Torsten.
Image Analyst
am 25 Nov. 2016
Please supply the hw function so we can run your code.
Antworten (3)
Image Analyst
am 25 Nov. 2016
1 Stimme
If you have that function already, then use inverse transform sampling: https://en.wikipedia.org/wiki/Inverse_transform_sampling. In short, compute the CDF of your function and use rand() to pick a value.
I attach an example of how I used it for the Rayleigh distribution.
CarrotCakeIsYum
am 25 Nov. 2016
randi will generate rando integers.
To generate a random sample from a vector, use randsample. see:
help randsample
I'd imagine you'd want:
y = randsample(my_pdf,100);
To plot a histogram use the 'hist' command.
2 Kommentare
Kash022
am 25 Nov. 2016
CarrotCakeIsYum
am 25 Nov. 2016
Sorry I don't follow... your population will only have one mean!
For the JPEG you've posted, the mean will be at 7.5 (since it is a symmetrical distribution).
Image Analyst
am 25 Nov. 2016
0 Stimmen
Maybe use randn() to get a list of a few million numbers taken from those 13 distributions (call randn thirteen times), then pick one of the values at random.
Kategorien
Mehr zu Normal Distribution finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!