Finding fitgmdist value range from histogram

2 views (last 30 days)
banikr
banikr on 13 Apr 2020
Commented: Image Analyst on 15 Apr 2020
Hello Altruists,
I have some data in 'rawdata.mat'
I want find the intensity distribution of the rawdata. For example, if we take the histogram of:
H = histogram(J);
Looks like there are 2/3 Gaussian models. I want to take the one with maximum mean. But how do I find the range of values under that Gaussian distribution. For example the max Gaussian mean is at 234.
How do I choose the range of the Gaussian distribution?
GMModel = fitgmdist(double(J),2);

Answers (1)

Image Analyst
Image Analyst on 13 Apr 2020
See my File Exchange submission where you can fit the data to any number of Gaussians:
  7 Comments
Image Analyst
Image Analyst on 15 Apr 2020
You're getting some sort of error. It's not being displayed because it seems some helper functions are not included. I'm including them here.
Image Analyst
Image Analyst on 15 Apr 2020
Your data does not fit 3 or even 4 Gaussians well at all. Anyway, I'm attaching the code, test1.m, that works for 4 Gaussians and you can see that there is not a good fit for just Pure Gaussians.
There seems to be a ramp. You might try using fitnlm() and add in the ramp. I'm attaching a demo for fitnlm.
Adapt it to fit 3 Gaussians.

Sign in to comment.

Categories

Find more on Statistics and Machine Learning Toolbox 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!