【发布时间】:2016-01-16 04:19:38
【问题描述】:
我对 MATLAB 和它的语法比较陌生。
在 R 中,我们可以生成一个数据集来建模:
> x <- seq(1:100)
> x <- jitter(x,amount=.3)
> y <- seq(1:100)
> y <- sin(y)
> y <- jitter(y)
我们现在有一些从 1 到 100 的抖动 x 值,以及遵循近似正弦曲线的 y 值。
现在我们可以使用nls 来拟合模型:
model <- nls(y ~ a + b*x + c*sin(d*x+e), start = c(a=0, b = 1, c = 1,d=1,e=0))
毫不奇怪,我们得到的系数大约为 0、0、1、1 和 0。
现在我正在尝试在 MATLAB 中做同样的事情。
我创建了一个文本文件,并使用cat() 将数据从 R 加载到 MATLAB 中以写入文本文件。我现在在 MATLAB 中有 x 和 y,它们都是 100x1 double 对象。
如何以最简单的方式拟合完全相同的模型?我不想使用曲线拟合工具,我知道它直观且简单,但我希望能够编写此脚本。
基本上,在曲线拟合工具中,您可以输入 asin(bx+c) 并使其拟合模型。如何在代码中做到这一点?
【问题讨论】:
标签: matlab