MATLAB非线性回归

时间:2013-10-17 08:15:21

标签: matlab regression

我最近在MATLAB中尝试过非线性回归,我不确定如何去做。

我尝试过使用MATLAB的帮助页面并使用this一个

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

我收到此错误:

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部分

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

2 个答案:

答案 0 :(得分:3)

您需要安装Matlab的Statistics Toolbox才能使用fitnlm。从工具箱提供的list of functions可以看出。 由于您尚未安装它,它将无法在其路径上找到该功能,因此会遇到上述错误。

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

答案 1 :(得分: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)

感谢您的帮助!

相关问题