Matlab 如何从时间序列中找到线性趋势?

Matlab 如何从时间序列中找到线性趋势?,matlab,linear-regression,Matlab,Linear Regression,我如何从时间序列中找到线性趋势 我知道时间序列是y={y1,…yn}或者对于第一种情况{1.000000000000000 0.917457418407746 0.683456229182811}。假设每个元素yi在ti=i时采样 需要拟合的多项式的阶数为1 下面是我的尝试 function [ linCoeffs ] = getLinearTrend(y) y = [1.000000000000000,0.917457418407746,0.683456229182811]; x

我如何从时间序列中找到线性趋势

我知道时间序列是
y={y1,…yn}
或者对于第一种情况
{1.000000000000000 0.917457418407746 0.683456229182811}
。假设每个元素
yi
ti=i
时采样

需要拟合的多项式的阶数为1

下面是我的尝试

function [ linCoeffs ] = getLinearTrend(y)

   y = [1.000000000000000,0.917457418407746,0.683456229182811];
   x = ;
   linCoeffs = polyfit(y,x,1);

end

这并不像我对如何处理x值感到困惑。通常y是一个输入值,但对于测试,我只是将其保留在其中。

看起来您以错误的顺序向
polyfit
提供了参数。第一个参数取x轴的值,在这种情况下,x轴对应于i给出的采样时间。第二个参数采用y值。所以你想要的是:

function linCoeffs = getLinearTrend(y)

   linCoeffs = polyfit(1:size(y,2), y, 1);

end
根据您的示例y,其结果是:

y = [1.000000000000000,0.917457418407746,0.683456229182811];

getLinearTrend(y)
ans =

  -0.15827   1.18351

使用类似
x=1:n
?当使用下面的测试线束时,应给出下面的结果。林柯夫斯=-0.158271885408595 1。183514986680709@Blitzkayir这些论点是按错误的顺序提供的。请尝试修改后的答案。看起来它正在做你想做的事。