MATLAB Answers

0

How can I average datetimes of my array?

Asked by Madeleine Loveday on 18 Apr 2019
Latest activity Commented on by Madeleine Loveday on 19 Apr 2019
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.

3 Answers

Answer by Sean de Wolski
on 18 Apr 2019
 Accepted Answer

Look at the retime() function for a timetable.

  0 Comments

Sign in to comment.


Answer by 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

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!
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');
Ok great thanks for your help!

Sign in to comment.


Answer by Walter Roberson
on 18 Apr 2019

Not array2timetable. Use table2timetable

  0 Comments

Sign in to comment.