Nonlinear fitting n-dimensional data with arbitrary functions
How to fit a 2D Gaussian function to noisy data in Matlab? Or data with another number of dimensions and arbitrary fit function?
It took me a while to find out how Matlab does this by the functions lsqcurvefit, fmincon or fminsearch. This project demonstrates how to use these functions to fit ND data with ND functions. Several tests are compiled in the file fit_test.m. Reading and trying out this file will explain a lot.
fit_nl.m and fit_nl_ex.m are written around the matlab functions lsqcurvefit/ fmincon/fminsearch. Additionally: parameters can be set fixed or some built-in functions (Gaussians, Lorentzians) can be used (see fit_func.m). However the set of built-in functions is pretty special.
fmincon/fminsearch can even be used to solve maximum likelihood parameter estimation problems other than for gaussian noise (least squares). An example is included for Poissonian noise in fit_nl_ex.m. Although this is often the case in imaging, this part is also quite special. If You have questions about these problems, ask here!
Cite As
Jan Keller (2024). Nonlinear fitting n-dimensional data with arbitrary functions (https://www.mathworks.com/matlabcentral/fileexchange/20540-nonlinear-fitting-n-dimensional-data-with-arbitrary-functions), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
html/
Version | Published | Release Notes | |
---|---|---|---|
1.0.0.0 | Some bugs, better help, more comments, error checks, a better test routine and a little bit more features ... version 2. |