How to applied 2d gaussian function

Hi,
I upload my code and data I don't know why the fit not working and the amplitude not in the center of the gaussain
I hope someone can help.
Thanks,

Antworten (2)

Yongjian Feng
Yongjian Feng am 3 Aug. 2021

0 Stimmen

Try to contact the auther of the fileexchange function first?
Matt J
Matt J am 3 Aug. 2021
Bearbeitet: Matt J am 3 Aug. 2021

0 Stimmen

You could try this alternative gaussian fitting routine, and see if you get different results:

4 Kommentare

Z998567
Z998567 am 3 Aug. 2021
Hi Matt,
I try it, but I got an error with this "zdata: Mx1 vector of corresponding samples z(xdata)"
I convert my data to one row by "zdata = imageData(:);" but I got an error:
Error using gaussfitn (line 66)
Expected zdata to be an array with number of elements equal to 351.
Thanks
Matt J
Matt J am 3 Aug. 2021
Bearbeitet: Matt J am 3 Aug. 2021
Here's what I get,
load gauss
[X,Y]=ndgrid(1:length(imageData));
XY=[X(:),Y(:)];
params=gaussfitn(XY, imageData(:));
Local minimum possible. lsqcurvefit stopped because the final change in the sum of squares relative to its initial value is less than the value of the function tolerance.
[D,A,mu,sig]=deal(params{:});
Zfit= D + A*exp( -0.5 * sum( (sig\(XY.'-mu)).*(XY.'-mu) ));
imageFit=reshape(Zfit,size(imageData));
montage({imageData,imageFit})
caxis(4000*[0.7615 0.8126])
Z998567
Z998567 am 3 Aug. 2021
Thanks Matt, it works but I need to plot the fir as an image like the attachement. Is there away with this function.
Matt J
Matt J am 3 Aug. 2021
Once you have the fitted parameters, you can plot it any way you wish.

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 3 Aug. 2021

Kommentiert:

am 3 Aug. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by