【问题标题】:MATLAB's nonlinear regressionMATLAB 非线性回归
【发布时间】:2013-10-25 15:10:03
【问题描述】:

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

我尝试使用 MATLAB 的帮助页面并使用了this one

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

我收到此错误:

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

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

【问题讨论】:

    标签: matlab regression


    【解决方案1】:

    你需要安装 Matlab 的Statistics Toolbox 才能使用fitnlm。从工具箱提供的list of functions可以看出。 由于你没有安装它,它不会在它的路径上找到该函数,因此会遇到上述错误。

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

    【讨论】:

    • 我可以访问统计工具箱的其他元素,所以我认为它们都可以工作?
    • 您使用的是哪个版本的 Matlab?
    • 2012b,我有统计工具箱 8.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)
    

    感谢您的帮助!

    【讨论】:

      猜你喜欢
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 2016-11-13
      • 2019-10-09
      • 2012-09-17
      • 2023-03-27
      相关资源
      最近更新 更多