1

我最近一直在尝试在 MATLAB 中进行非线性回归,但不确定如何去做。

我尝试使用 MATLAB 的帮助页面并使用了这个

但是,即使我只是复制并粘贴示例(在“来自矩阵数据的非线性模型”下)

我收到此错误:

Undefined function 'fitnlm' for input arguments of type 'function_handle'.

我试过的是:

load carbig
X = [Horsepower,Weight];
y = MPG;
modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + b(4)*x(:,2).^b(5);
beta0 = [-50 500 -1 500 -1];
mdl = fitnlm(X,y,modelfun,beta0)

但它似乎不喜欢这个modelfun部分

我想知道为什么它有问题,如果这是他们的例子?

4

2 回答 2

3

您需要安装 MatlabStatistics Toolbox才能使用fitnlm. 从工具箱提供的功能列表中可以看出。由于您尚未安装它,它不会在其路径上找到该功能,因此会遇到上述错误。

fitnlm在 matlab 2013b 和统计工具箱 8.3 中引入。

于 2013-10-17T08:16:56.467 回答
2

我认为我的 matlab 版本fitnlm不存在,所以我必须使用NonLinearModel.fit

刚试了一下,好像没问题:

load carbig
X = [Horsepower,Weight];
y = MPG;
modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + b(4)*x(:,2).^b(5);
beta0 = [-50 500 -1 500 -1];
mdl = NonLinearModel.fit(X,y,modelfun,beta0)

谢谢你的帮助!

于 2013-10-17T09:01:00.560 回答