MATLAB Answers

How can I average datetimes of my array?

18 views (last 30 days)
I think this may be a simple problem so hopefully someone can help me!
I have datetime values for every 10 seconds of every day for a few years of black carbon values
I'd like to average these to hourly intervals, so that i can correlate this data with data from another array which is in 30 sec intervals
I'm sure i need to use array2timetable and make a timetable to average the data.
The time values are currently in date time format.
I'm attempting to do this on one day at first, this is my data in a table, i cant seem to get it in an array
mytable =
1182×2 table
x1 y1
____________________ ________
23-Jun-2017 10:43:50 4.6948
23-Jun-2017 10:44:00 27.012
23-Jun-2017 10:44:10 36.513
23-Jun-2017 10:44:20 15.741
23-Jun-2017 10:44:30 3.7222
23-Jun-2017 10:44:40 6.0609
23-Jun-2017 10:44:50 8.8386
23-Jun-2017 10:45:00 4.0301
23-Jun-2017 10:45:10 1.8601
23-Jun-2017 10:45:20 3.294
23-Jun-2017 10:45:30 2.7862
23-Jun-2017 10:45:40 2.0448
23-Jun-2017 10:45:50 2.5459
This is an example of what data looks like, for this day it runs from 10:00-14:00.
Thanks!

  0 Comments

Sign in to comment.

Accepted Answer

Sean de Wolski
Sean de Wolski on 18 Apr 2019
Look at the retime() function for a timetable.

  0 Comments

Sign in to comment.

More Answers (2)

Steven Lord
Steven Lord on 18 Apr 2019
Convert your table to a timetable using table2timetable. Once you have your timetable call retime on it.

  3 Comments

Madeleine Loveday
Madeleine Loveday on 18 Apr 2019
thanks Steven.
Any idea how I would be able to use this for my entire array (I have an entire array composed of these 10 second datetimes)?
Is there a simpler way than inputting them into a table?
Thanks!
Walter Roberson
Walter Roberson on 18 Apr 2019
No, using a timetable and retime() is the simplest. It is not the only way, but it is designed for exactly this kind of purpose and automatically takes care of issues such as irregular spacing of data points, and missing intervals, and so on. Can't get much simpler than
output = retime(table2timetable(mytable), 'hourly', 'mean');

Sign in to comment.


Walter Roberson
Walter Roberson on 18 Apr 2019
Not array2timetable. Use table2timetable

  0 Comments

Sign in to comment.