gaussfitn

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

Updated 22 Oct 2018

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>.
over-ridden.

OUTPUTS:

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 (2022). gaussfitn (https://www.mathworks.com/matlabcentral/fileexchange/69116-gaussfitn), MATLAB Central File Exchange. Retrieved .

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