MATLAB Answers

pietro
0

Error in using fitlnm: Why do I get "The model function must accept two arguments"?

Asked by pietro
on 16 May 2018
Latest activity Commented on by Star Strider
on 16 May 2018
Hi all, 
I am having troubles in using fillnm. Below an example:
clear all
x=[0:0.01:10];
y=x.^2;
modelfun=@(x)(x.^2);
beta0=1;
mdl=fitnlm(x,y,modelfun,beta0);

Unfortunately, I get the following error:

Error using classreg.regr.NonLinearFormula (line 225)
The model function must accept two arguments.
Error in NonLinearModel/createFormula (line 1643)
                    formula =
                    classreg.regr.NonLinearFormula(modelDef,coefNames,predictorVars,responseVar,varNames,ncoefs);
Error in NonLinearModel.fit (line 1397)
            model.Formula =
            NonLinearModel.createFormula(supplied,modelDef,X,ncoefs,coefNames,
            ...
Error in fitnlm (line 94)
model = NonLinearModel.fit(X,varargin{:});

Why do I get this error?

Thanks.

Best regards,

Pietro

  0 Comments

Sign in to comment.

Tags

Products


Release

R2017a

1 Answer

Answer by Star Strider
on 16 May 2018
 Accepted Answer

The function must express the model you are fitting in terms of a vector of parameters and the independent variable, with the parameter vector being the first argument, and the independent variable the second argument.

Ideally, your model would be something like:

modelfun = @(b,x) b(1) + b(2).*x.^2;

If you are estimating no parameters, it makes no sense to use any parameter estimation function.

  2 Comments

That's unbelievable I have lost two hours for a such stupid issue! Thanks a lot

Sign in to comment.