0
votes

I am trying to do a non linear regression to find the constants Is and n with the least square curve fitting.This is the formula Is(exp(1).^(V/26.*n)) And this is my code

fun = @(n,Is)Is(exp(1).^(V/26.*n));
x0 = [0,14];
x = lsqcurvefit(fun,x0,V,I)

It retruns the following

Matrix dimensions must agree.

Error in @(n,Is)Is(exp(1).^(V/26.*n))

Error in lsqcurvefit (line 202) initVals.F = feval(funfcn_x_xdata{3},xCurrent,XDATA,varargin{:});

Caused by: Failure in initial objective function evaluation. LSQCURVEFIT cannot continue.

1

1 Answers

0
votes

From https://www.mathworks.com/help/optim/ug/lsqcurvefit.html

Function you want to fit, specified as a function handle or the name of a function. fun is a function that takes two inputs: a vector or matrix x, and a vector or matrix xdata. fun returns a vector or matrix F, the objective function evaluated at x and xdata.

In your case your fun gets only your parameters to fit, not your data. I suggest changing it to

fun = @(X,V) X(2)*(exp(1).^(V/26.*X(1)));