Home > reduc > calcs > gauss2D_fit_nograd.m

gauss2D_fit_nograd

PURPOSE ^

produced for use in nlinfit

SYNOPSIS ^

function z = gauss2D_fit_nograd(par,dataCell)

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) = width x
 p(5) = width y

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function z = gauss2D_fit_nograd(par,dataCell)
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) = width x
0008 % p(5) = width y
0009 
0010 % NB - the parameter order is the reverse of
0011 % that expected by Matlab funcs like quad - but swapping it doesn't
0012 % help as quad refuses to pass forward anything but
0013 % scalar parameters.
0014 
0015 x = dataCell{1};
0016 y = dataCell{2};
0017 fitIndices = dataCell{3};
0018 initGuess  = dataCell{4};
0019 
0020 f = find(~fitIndices);
0021 
0022 par(f) = initGuess(f);
0023 
0024 amp  = par(1);
0025 xoff = par(2);
0026 yoff = par(3);
0027 sigmax = par(4);
0028 sigmay = par(5);
0029 
0030 
0031 if length(x) < length(y)
0032    diff = length(y) - length(x);
0033    added = zeros(1,diff);
0034    x = cat(1, x, added');
0035 elseif length(y) < length(x)
0036     diff = length(x) - length(y);
0037     added = zeros(1, diff);
0038     y = cat(1, y, added');
0039 end 
0040 
0041 % check the ones we want fixed.
0042 
0043 z=amp*(exp(-0.5*(x-xoff).^2./(sigmax^2)-0.5*(y-yoff).^2./(sigmay^2)));
0044 
0045 
0046 end
0047

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