File Exchange

image thumbnail


version 1.1.1 (2.96 KB) by Matt J
Fit N-dimensional scattered points with Gaussian+constant


Updated 22 Oct 2018

View Version History

View License

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.


[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,
By default, however, SpecifyConstraintGradient=true unless


A: 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

Cite As

Matt J (2021). gaussfitn (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (0)

MATLAB Release Compatibility
Created with R2018a
Compatible with R2016b and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!