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这些论点是按错误的顺序提供的。请尝试修改后的答案。看起来它正在做你想做的事。