Home > reduc > calcs > gauss2D_fit.m

gauss2D_fit

PURPOSE ^

produced for use in nlinfit

SYNOPSIS ^

function z = gauss2D_fit(par,X)

DESCRIPTION ^

 produced for use in nlinfit
e.g [betanew] = nlinfit(X,Y, @gauss2D_fit, p)
 p(1) = peak height
 p(2) = mean x
 p(3) = mean y
 p(4) = offset gradient x
 p(5) = offset gradient y
 p(6) = offset

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function z = gauss2D_fit(par,X)
0002 % produced for use in nlinfit
0003 %e.g [betanew] = nlinfit(X,Y, @gauss2D_fit, p)
0004 % p(1) = peak height
0005 % p(2) = mean x
0006 % p(3) = mean y
0007 % p(4) = offset gradient x
0008 % p(5) = offset gradient y
0009 % p(6) = offset
0010 
0011 
0012 % NB - the parameter order is the reverse of
0013 % that expected by Matlab funcs like quad - but swapping it doesn't
0014 % help as quad refuses to pass forward anything but
0015 % scalar parameters.
0016 
0017 lenX = length(X)-1;
0018 lenAz = last(X);
0019 
0020 x = X(1:lenAz);
0021 y = X(lenAz+1: lenX);
0022 
0023 if length(x) < length(y)
0024    diff = length(y) - length(x);
0025    added = zeros(1,diff);
0026    x = cat(1, x, added');
0027 elseif length(y) < length(x)
0028     diff = length(x) - length(y);
0029     added = zeros(1, diff);
0030     y = cat(1, y, added');
0031 end 
0032 
0033 x_slant =par(6)*x;
0034 y_slant =par(7)*y;
0035 
0036 
0037 z=par(1)*(exp(-0.5*(x-par(2)).^2./(par(3)^2)-0.5*(y-par(4)).^2./(par(5)^2))) + x_slant + y_slant + par(8);
0038 
0039 
0040 end
0041

Generated on Sun 14-Jun-2015 17:12:45 by m2html © 2005