detrending timeseries by removing the linear function fitted by samples?
조회 수: 3 (최근 30일)
이전 댓글 표시
I am trying to detrend a timeseries based on one sample of the timeseries in matlab.
I basically want my sample points to be all the points between 11-22, but I am getting an error saying that the t variable has to be equal to the what tac is (which is 71).
I've tried this and this does not work:
tac = 71x1 double
t = 11:22;
d_tac_ts_2 = detrend(tac,‘SamplePoints’,t)
I get this error:
Error using detrend>checkSamplePoints (line 284)
The number of elements in the 'SamplePoints' value must equal the size of
the first argument along the first dimension.
Error in detrend>parseNV (line 266)
s = checkSamplePoints(varargin{j+1},x);
Error in detrend>parseInputs (line 161)
[continuity,s] = parseNV(1,nargin,continuity,s,x,varargin{:});
Error in detrend (line 50)
[x,polyDeg,bp,s,continuity,sizeX,N,isrowx,isNDx,lbp] = parseInputs(x,
varargin{:});
Error in plotting_ref_TAC_vs_TAC_PET (line 28)
d_tac_ts_2 = detrend(tac,'SamplePoints',t)
This works, but does not do what I want:
t = 1:71;
d_tac_ts_2 = detrend(tac,‘SamplePoints’,t)
thanks so much for any help!
댓글 수: 0
채택된 답변
Star Strider
2021년 2월 26일
Considering that the objective is to remove a linear trend, perhaps the easiest way would be:
t = 11:22;
p = polyfit(x(t),tac(t),1);
d_tac_ts_2 = tac - polyval(p, x);
Here, ‘x’ is the original independent variable vector that defines ‘tac’ as the dependent variable.
Plotting the result would be:
figure
plot(x, tac)
hold on
plot(x, d_tac_ts_2)
hold off
grid
To plot both the original and detrended data.
댓글 수: 4
Star Strider
2021년 2월 26일
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Repeated Measures and MANOVA에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!