This function uses lsqcurvefit to fit parameters D, A, mu, sig to the R^N-->R
Gaussian+constant model function,
z(x) = D + A*exp( -0.5 * (x-mu).' * inv(sig) *(x-mu) )
Here A and D are unknown scalars, mu is an unknown Nx1 mean vector, and sig is an
unknown NxN covariance matrix. By imposing lower and upper bounds 0<=D<=0 (see below), this can also be used to perform pure Gaussian fitting.
SYNTAX:
[params,resnorm, residual,exitflag,output] = gaussfitn(xdata,zdata,params0,LB,UB,Name,Value)
INPUTS (required):
xdata: MxN matrix whose rows specify M scattered samples in R^N
zdata: Mx1 vector of corresponding samples z(xdata)
INPUTS (optional)
params0: Cell array of initial parameter estimates {D0,A0,mu0,sig0}.
Can also be empty [] in which case default initial guesses
are autogenerated. Can also consist of cell array of empty
and non-empty elements like {D0,[],mu0,[]} in which case
default initial guesses are generated for select parameters.
LB: Cell array of lower bounds {D_LB, A_LB, mu_LB} on D, A, and mu.
UB: Cell array of upper bounds {D_UB, A_UB, mu_UB} on D, A, and mu.
Name,Value: Name/Value option pairs compatible with lsqcurvefit. See,
<https://www.mathworks.com/help/optim/ug/lsqcurvefit.html#buuhcjo-options>.
By default, however, SpecifyConstraintGradient=true unless
over-ridden.
OUTPUTS:
params: Final estimate of the parameters as a cell array {D,A,mu,sig}
resnorm: As in lsqcurvefit
residual: As in lsqcurvefit
exitflag: As in lsqcurvefit
output: As in lsqcurvefit
引用格式
Matt J (2024). gaussfitn (https://www.mathworks.com/matlabcentral/fileexchange/69116-gaussfitn), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
创建方式
R2018a
与 R2016b 及更高版本兼容
平台兼容性
Windows macOS Linux类别
- MATLAB > Mathematics > Numerical Integration and Differential Equations > Ordinary Differential Equations >
在 Help Center 和 MATLAB Answers 中查找有关 Ordinary Differential Equations 的更多信息
标签
致谢
参考作品: 2D Rotated Gaussian Fit, Fit 2D gaussian function to data, Fit 2D Gaussian with Optimization Toolbox, Fit 1D and 2D gaussian to noisy data
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!