MATLAB Answers

Generating Daily Values using Hourly Values

3 views (last 30 days)
Ugur Acar
Ugur Acar on 18 Oct 2019
Commented: Ugur Acar on 18 Oct 2019
i have hourly (8760h) temperature values of each year. I need to generate daily values using hourly values.
For example, i need to calculate some daily parameters like daily average temperature or daily maximum temprerature using hourly data.
Raw data is in a excel file. File format is like this;
After reading excel data, i used 'datenum' function to assign numeric value to each day. Then corrected the first day's numercal value to "1".
for i=1:8760;
raw(i,1)=datenum(Excel_data(i,1),Excel_data(i,2),Excel_data(i,3));
corrected(i,1)=datenum(Excel_data(i,1),Excel_data(i,2),Excel_data(i,3))-raw(1,1)+1;
corrected(i,2)=Excel_data(i,5);
end
Then i have,
corrected=8760x2
After this point, for example, i need calculate daily average temperature for day 1, day 2 ....day 365 at this step.
it needs to look like this;
but i couldnt manage to get a table seems like above.

  2 Comments

Andrei Bobrov
Andrei Bobrov on 18 Oct 2019
here attach your data (your xlsx-file)

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 18 Oct 2019
T = readtable('your_xlsx_file.xlsx');
t = datetime([T{:,1:4}, zeros(size(T,1),2)]);
TT = timetable(T{:,end},'RowTimes',t) ;
TT_mean = retime(TT,'daily','mean');
TT_max = retime(TT,'daily','max');
TT_out = [TT_mean,TT_max];

  1 Comment

Ugur Acar
Ugur Acar on 18 Oct 2019
thank you for your suggestion, i didnt know about timetable function, it looks like it will solve the problem, i will try thanks ;)

Sign in to comment.

More Answers (0)

Sign in to answer this question.