How do I plot a gaussian mixed model with 1D data?

11 Ansichten (letzte 30 Tage)
Trisha Kibaya
Trisha Kibaya am 19 Aug. 2018
Kommentiert: Sajid Raza am 31 Jul. 2019
Hi I am a novice in Matlab. I have to plot a gaussian mixed model with one dimensional data. So far i have been able to do only this: data = xlsread('csf.xlsx','ab'); mu1 = mean('data'); sigma1 = std('data'); X = [mvnrnd(mu1,sigma1,1000)]; gm = fitgmdist(X,2); What do i do next? Thanks a lot.
  1 Kommentar
Sajid Raza
Sajid Raza am 31 Jul. 2019
@Trisha Kibaya, did you get answer for this one dimensional question?
I am facing same issue. I have one dimensional data. I use 'fitgmdist' to get gmdistribution. Then i want to visualize this distribution or show as clusters based on mu and sigma from the fitgmdist function.
Thanks.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Yuvaraj Venkataswamy
Yuvaraj Venkataswamy am 20 Aug. 2018
if true
data = xlsread('csf.xlsx','ab'); % your data
mu1 = mean('data'); % mean
sigma1 = std('data'); % standard deviation
X = [mvnrnd(mu1,sigma1,1000)]; % generate equal number of random variables
gm = fitgmdist(X,2); %Gaussian mixture distribution with 2 components
scatter(X(:,1),X(:,2),10,'.') % plot X
hold on
ezcontour(@(x,y)pdf(gm,[x y]),[-8 6],[-8 6])
end
From the plot You can visualize the fitted model gm by using pdf and ezcontour of your data.
  2 Kommentare
Trisha Kibaya
Trisha Kibaya am 20 Aug. 2018
Thanks for your reply. I did as you suggested and I got the following error message: Index in position 2 exceeds array bounds (must not exceed 1). Do you know which position its referring to? and is there a way to plot it like a bell curve?
Yuvaraj Venkataswamy
Yuvaraj Venkataswamy am 20 Aug. 2018
In which line you are getting error?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Trisha Kibaya
Trisha Kibaya am 20 Aug. 2018
I have attached a screenshot.

Community Treasure Hunt

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

Start Hunting!

Translated by