lsqcurvefit: not enough input arguments

10 visualizaciones (últimos 30 días)
Simon Fridolf
Simon Fridolf el 13 de Nov. de 2020
Respondida: Ameer Hamza el 13 de Nov. de 2020
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?

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 13 de Nov. de 2020
You need to pass function handle
fit=lsqcurvefit(@fLCST,[1 1 36 1],xdata,ydata,[],[],options)
%^ put @ here

Más respuestas (0)

Categorías

Más información sobre Nonlinear Optimization en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by