how to calculate hourly averages?

I convertued my file to a csv, then used the following code to try and get hourly averages:
writematrix(NTU,'M.csv');
T1 = readtable('M.csv');
TT1 = table2timetable(T1,'RowTimes',NTU);
TT1 = retime(TT1, 'hourly','mean');
Am I using table2timetable wrong?

5 Comments

What leads you to think that you're using table2timetable incorrectly?
  • Do you receive warning and/or error messages? If so the full and exact text of those messages (all the text displayed in orange and/or red in the Command Window) may be useful in determining what's going on and how to avoid the warning and/or error.
  • Does it do something different than what you expected? If so, what did it do and what did you expect it to do?
  • Did MATLAB crash? If so please send the crash log file (with a description of what you were running or doing in MATLAB when the crash occured) to Technical Support so we can investigate.
Error using table2timetable:
"Row times must be specified as variable name or index, or as datetime or duration vector."
Okay. So what data type is NTU? Is it the name of a variable in the table T1, is it a datetime or duration vector, or is it something else?
Run this command immediately before your table2timetable call and show us what it displays, please.
whos NTU
NTU 2856x1 22848 double
So what do the values in NTU represent? Seconds since an epoch, days since an epoch, yyyymmdd, etc.?
Use those as inputs to datetime or duration (possibly with 'ConvertFrom' and the appropriate option for what your data represents) then use the datetime or duration array that call returns as your RowTimes. For example:
dt1 = datetime(19850621, 'ConvertFrom', 'yyyymmdd') % June 21, 1985 or
dt1 = datetime
21-Jun-1985
dt2 = datetime(1e8, 'ConvertFrom', 'epochtime') % 1e8 seconds since Jan 1, 1970
dt2 = datetime
03-Mar-1973 09:46:40
datetime(1970, 1, 1) + seconds(1e8)
ans = datetime
03-Mar-1973 09:46:40

Sign in to comment.

Answers (1)

Hi Laura,
As I can conclude that you are trying to use the ‘time2timetable’ and ‘retime’ function on the csv file.
To use the ‘time2timetable’ function, the second parameter should be the time vector, which serves as the row times of the timetable.
The code provided by you uses matrix which is ‘NTU’ as the second parameter and hence leading to the error.
% Write the NTU table to a CSV file
writetable(NTU, 'M.csv');
% Read the CSV file into a table
T1 = readtable('M.csv')
T1 = 25x2 table
Time Data ____________________ ________ 01-Jan-2023 00:00:00 0.48082 01-Jan-2023 01:00:00 0.90551 01-Jan-2023 02:00:00 0.80632 01-Jan-2023 03:00:00 0.76504 01-Jan-2023 04:00:00 0.3527 01-Jan-2023 05:00:00 0.26046 01-Jan-2023 06:00:00 0.3855 01-Jan-2023 07:00:00 0.61901 01-Jan-2023 08:00:00 0.41475 01-Jan-2023 09:00:00 0.53672 01-Jan-2023 10:00:00 0.91554 01-Jan-2023 11:00:00 0.78077 01-Jan-2023 12:00:00 0.67933 01-Jan-2023 13:00:00 0.02752 01-Jan-2023 14:00:00 0.6933 01-Jan-2023 15:00:00 0.034749
% Convert the table to a timetable using the datetime column as RowTimes
TT1 = table2timetable(T1, 'RowTimes', 'Time')
TT1 = 25x1 timetable
Time Data ____________________ ________ 01-Jan-2023 00:00:00 0.48082 01-Jan-2023 01:00:00 0.90551 01-Jan-2023 02:00:00 0.80632 01-Jan-2023 03:00:00 0.76504 01-Jan-2023 04:00:00 0.3527 01-Jan-2023 05:00:00 0.26046 01-Jan-2023 06:00:00 0.3855 01-Jan-2023 07:00:00 0.61901 01-Jan-2023 08:00:00 0.41475 01-Jan-2023 09:00:00 0.53672 01-Jan-2023 10:00:00 0.91554 01-Jan-2023 11:00:00 0.78077 01-Jan-2023 12:00:00 0.67933 01-Jan-2023 13:00:00 0.02752 01-Jan-2023 14:00:00 0.6933 01-Jan-2023 15:00:00 0.034749
% Retime the timetable to hourly with mean aggregation
TT1 = retime(TT1, 'hourly', 'mean')
TT1 = 24x1 timetable
Time Data ____________________ ________ 01-Jan-2023 00:00:00 0.48082 01-Jan-2023 01:00:00 0.90551 01-Jan-2023 02:00:00 0.80632 01-Jan-2023 03:00:00 0.76504 01-Jan-2023 04:00:00 0.3527 01-Jan-2023 05:00:00 0.26046 01-Jan-2023 06:00:00 0.3855 01-Jan-2023 07:00:00 0.61901 01-Jan-2023 08:00:00 0.41475 01-Jan-2023 09:00:00 0.53672 01-Jan-2023 10:00:00 0.91554 01-Jan-2023 11:00:00 0.78077 01-Jan-2023 12:00:00 0.67933 01-Jan-2023 13:00:00 0.02752 01-Jan-2023 14:00:00 0.6933 01-Jan-2023 15:00:00 0.034749
For more information, you can refer to the MATLAB Documentation given below
I hope this resolves your query.

Asked:

on 16 Jul 2024

Answered:

on 7 Aug 2024

Community Treasure Hunt

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

Start Hunting!