我对MATLAB及其语法相对较新。
在R中,我们可以生成一个数据集来建模:
> x <- seq(1:100)
> x <- jitter(x,amount=.3)
> y <- seq(1:100)
> y <- sin(y)
> y <- jitter(y)
我们现在有一些抖动的x值从1到100,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
个对象。
我如何以最简单的方式拟合完全相同的模型?我不想使用曲线拟合工具,我知道它是视觉和简单的,但我希望能够编写脚本。
基本上,在曲线拟合工具中,您可以键入 sin(b x + c)并使其适合模型。我怎么能在代码中做到这一点?
答案 0 :(得分:1)
您要查找的功能是统计工具箱中的nlinfit。