Gaussian Mixture pdf plot

18 views (last 30 days)
freebil
freebil on 18 Jun 2016
Answered: the cyclist on 12 Jan 2017
Hello. I have a gaussian with probability 0.2 and (m1,sigma1), another with probability 0.3 and (m2,sigma2) and one with probability 0.5 and (m3,sigma3).
How can I plot this? Thanks.

Answers (3)

the cyclist
the cyclist on 18 Jun 2016
Edited: the cyclist on 18 Jun 2016

Here's one way.

pd2 = makedist('Normal','mu',2,'sigma',0.2);
pd3 = makedist('Normal','mu',3,'sigma',0.3);
pd5 = makedist('Normal','mu',5,'sigma',0.5);
x = 0 : 0.001 : 10;
y = 0.2*pdf(pd2,x) + 0.3*pdf(pd3,x) + 0.5*pdf(pd5,x);
figure
plot(x,y)

It requires the Statistics and Machine Learning Toolbox.


the cyclist
the cyclist on 12 Jan 2017
Here is how the same figure can be made without the Statistics & Machine Learning Toolbox:
mu2 = 2;
mu3 = 3;
mu5 = 5;
sig2 = 0.2;
sig3 = 0.3;
sig5 = 0.5;
n2 = @(x) exp(-(x-mu2).^2/(2*sig2.^2)) ./ (sig2*(2*pi).^0.5);
n3 = @(x) exp(-(x-mu3).^2/(2*sig3.^2)) ./ (sig3*(2*pi).^0.5);
n5 = @(x) exp(-(x-mu5).^2/(2*sig5.^2)) ./ (sig5*(2*pi).^0.5);
x = 0 : 0.001 : 10;
y = 0.2*n2(x) + 0.3*n3(x) + 0.5*n5(x);
figure
plot(x,y)

Amr Hashem
Amr Hashem on 10 Jan 2017
what I could use instead of "makedist" if i didn't have the toolbox?

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!