lsqcurvefit: not 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 9x1 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 1x4 coefficients and xdata so how can it need more input parameters?

 采纳的回答

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

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Nonlinear Least Squares (Curve Fitting) 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by