Azzera filtri
Azzera filtri

Fit Multiple gaussian curve on data with flat tops

24 visualizzazioni (ultimi 30 giorni)
AMIT
AMIT il 3 Lug 2024 alle 0:19
Risposto: Sam Chak il 3 Lug 2024 alle 7:43
How to fit double gaussian curve for this data set which is flat at some domains?
  2 Commenti
Alex Sha
Alex Sha il 3 Lug 2024 alle 6:56
Would you please give out all data in a file?
Umar
Umar il 3 Lug 2024 alle 7:22
Hi Alex,
Due to limited resources and being poor, this is the best I can do at the moment. Hope you understand my point.

Accedi per commentare.

Risposte (2)

Umar
Umar il 3 Lug 2024 alle 3:34

Hi Amit,

You asked, How to fit double gaussian curve for this data set which is flat at some domains?

To answer your question, use the fit function along with a custom equation that represents the double Gaussian curve. I can provide a basic example to get you started:

I will generate example data with two Gaussian peaks and some noise.

>> % Generate example data x = linspace(0, 10, 100); y = 2*exp(-(x-3).^2) + 1.5*exp(-(x-7).^2) + 0.5*randn(size(x));

Use the fit function with the gauss2 model to fit the double Gaussian curve to the data.

% Fit a double Gaussian curve f = fit(x', y', 'gauss2');

Finally, plot the original data points along with the fitted curve for visualization.

% Plot the data and the fitted curve plot(x, y, 'o') hold on plot(f, x, y) legend('Data', 'Fitted Curve')

For more information on fit function, please refer to

https://www.mathworks.com/help/curvefit/fit.html

Hope this will help resolve your problem.


Sam Chak
Sam Chak il 3 Lug 2024 alle 7:43
For a double-hump data with plateaux, you can try fitting it using two Exponential Power distribution functions. Let's take a look at how the function looks like:
x = -5:0.01:5;
a = 1;
b = 1/sqrt(2);
c = 1/sqrt(2);
d = 0;
e = 8; % exponent (in Gaussian, e = 2)
y = a*exp(-((x - (-c))/b).^e) + a*exp(-((x - c)/b).^e) + d;
plot(x, y, 'r.'), grid on, axis([-6 6, -0.2 1.2]), xlabel('x'), ylabel('y')
title('Double-hump with plateaux')

Categorie

Scopri di più su Get Started with Curve Fitting Toolbox in Help Center e File Exchange

Prodotti


Release

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by