如何在Matlab中以A =(L ^ x)(D ^ y)的形式拟合曲线?

时间:2016-02-22 09:47:16

标签: matlab regression curve-fitting

我有一些响应数据作为向量A,其中变量是L和D.

我只想找到L和D的系数,它们将以标题中提到的形式适合我的数据。

我想要一条曲线,而不是曲面。

我觉得它应该相当简单,但阅读一些旧的答案对我的情况也无济于事。

有一些简单的方法吗?

如果你想看到数据,请点击这里:

A = [0 0.06 0.12 0.44 0.56 0.94 1 1 0 0.04 0.58 0.74 0.86 1 1]

L = [100 100 100 100 100 100 100 100 43.7 49.7 56 61.5 65 77 93.8]

D = [11.3 10.1 8.9 8.5 8.1 7.7 6.5 5.3 5 5 5 5 5 5 5]

非常感谢。

更多信息:

我将上述等式编写为logA = xlogL + ylogD,并尝试使用

X = [ones(size(logL)) logL logD];

b = regress(logA,X);

但是Matlab没有返回任何系数,只是给了b = NaN NaN NaN

1 个答案:

答案 0 :(得分:0)

来自mathworks论坛的乔斯给了我正确的答案。这是:

  

nlm = fitnlm([L(:) D(:)],A,' y~(x1 ^ b1)*(x2 ^ b2)',[0 0])

如果你没有fitnlm,NonLinearModel.fit也会这样做。事实上,我使用后者。

希望这有助于某人。