Gaussian Mixture pdf plot

42 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?

Community Treasure Hunt

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

Start Hunting!