MATLAB Answers

Finding fitgmdist value range from histogram

15 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
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.

Community Treasure Hunt

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

Start Hunting!

Translated by