在MATLAB中拟合谐波模型

时间:2016-01-15 19:28:54

标签: matlab

我对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中有xy,都是100x1 double个对象。

我如何以最简单的方式拟合完全相同的模型?我不想使用曲线拟合工具,我知道它是视觉和简单的,但我希望能够编写脚本。

基本上,在曲线拟合工具中,您可以键入 sin(b x + c)并使其适合模型。我怎么能在代码中做到这一点?

1 个答案:

答案 0 :(得分:1)

您要查找的功能是统计工具箱中的nlinfit。