How do I compute 3 minute moving average in timeseries?
Show older comments
I have a time series object with two columns : Date,time (dd-mm-yyyy HH:MM:SS format) and Value. The data is sampled every 2 seconds. The total data is available is for around 10 days. How do I compute a timeseries with 3-minute moving average values?
Accepted Answer
More Answers (3)
Peter Perkins
on 15 Mar 2019
2 votes
If you mean, "means for each 3-minute time window", consider using a timetable and the retime function. If you mean, "means at each 2-sec step over the previous 3 minutes", you can also do that on a timetable, using smoothdata.
2 Comments
nlm
on 7 May 2020
How to calculate a 10 day average when the timeseries has duplicate dates. I do not want to average the dupliate dates priorly. I want to include them in the 10 day average. When I use movmean, I get this error, any suggestions ?
Error using builtin
'SamplePoints' value contains duplicates.
Error in datetime/movmean (line 105)
y = builtin('_movmeandt', args{:});
Peter Perkins
on 13 May 2020
Use retime.
Andrei Bobrov
on 14 Mar 2019
0 votes
Let ts - your timeseries object.
k = 3*60/2; % the number of elements corresponding to three minutes in your case
ts.Data(:,2) = movmean(ts.Data,[0, k - 1]);
sudharshini
on 10 Sep 2024
0 votes
preprocds = transform(letterds, @scale)
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!