MATLAB: Lsqcurvefit: not enough input arguments

lsqcurvefitnot enough input arguments

I am trying to fit a function to my data using lsqcurvefit. If i omit comments, the function .m file where x are coefficients and xdata is my independent variable is:
function I = fLCST(x,xdata)
I = x(1) ./ (1 + exp(-x(2).*(x(3)-xdata))) + x(4);
end
I can plot the output of this function if i feed it with my data and some dummy coefficients in the x vector. If I try to fit it using lsqcurvefit:
fit=lsqcurvefit(fLCST,[1 1 36 1],xdata,ydata,[],[],options)
where "options" only change the algorithm to levenberg-marquardt, and xdata,ydata are 9×1 numeric vectors I get the error:
Not enough input arguments.
Error in fLCST (line 18)
I = x(1) ./ (1 + exp(-x(2).*(x(3)-xdata))) + x(4);
I'm supplying both 1×4 coefficients and xdata so how can it need more input parameters?

Best Answer

  • You need to pass function handle
    fit=lsqcurvefit(@fLCST,[1 1 36 1],xdata,ydata,[],[],options)
    %^ put @ here