How to obtain moving average smoothing of daily time series?

조회 수: 7 (최근 30일)
Smith J
Smith J 2020년 9월 14일
답변: Johannes Hougaard 2020년 9월 14일
I have daily time series, how can I obtain seven day and monthly moving averaged time series.
I have tried the smooth command in matlab but it only provides the value and I also need the time.

답변 (1개)

Johannes Hougaard
Johannes Hougaard 2020년 9월 14일
I think the function you need is filter - but that requires a numeric input (for which I would use the datenum function)
timeseries = datetime(2020,01,01):datetime(2020,09,11);
dataseries = randn(size(timeseries));
N = 7; % A seven day average (could be altered to any number you'd like)
average_time = datetime(filter(ones(N,1),N,datenum(timeseries),nan(N-1,1)),'ConvertFrom',"datenum"); %the NaN assures that data are not calculated when data are insufficient
average_data = filter(ones(N,1),N,dataseries,nan(N-1,1));

카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by