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

4 次查看(过去 30 天)
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

采纳的回答

Star Strider
Star Strider 2018-5-16
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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Event Functions 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by