Home > reduc > calcs > gauss2D_fit2.m

gauss2D_fit2

PURPOSE ^

produced for use in nlinfit

SYNOPSIS ^

function z = gauss2D_fit2(par,X, LB, UB)

DESCRIPTION ^

 produced for use in nlinfit
e.g [betanew] = nlinfit(X,Y, @gauss2D_fit, p)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

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

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