30 views (last 30 days)

Hello guys.

I have the following question : I have observations for temperature in 5-minute interval, from 1/1/2015 to 31/1/2015 (8928 rows in total). From these data I must extract the hourly average value for temperature, which means that eventually I must have 24 hourly averaged values.

I would appreciate any ideas on the matter!

PS. I have attached the excel file I'm working on. Please note that the format of time appears diferently on Matlab.

David K.
on 19 Sep 2019

Edited: David K.
on 25 Sep 2019

Using for loops is a very straightforward way that this can be done:

x = yourData; %your data

size1 = length(x)/12;

size2 = 24;

sub1 = ones(size1,1); % intermediate matrix for averaging every hour

for n = 1:size1 % 8928/12 = 744

sub1(n) = mean(x(12*(n-1)+1 : (12*n))); % averages every 12 values to average every hour

end

hourlyVals = ones(size2 , 1); % 744/31 = 24

for n = 1:size2

hourlyVals(n) = mean(sub1(n:24:size1)); % calculate average of each hour across every day.

end

*edited to fix issue brought up in comments*

David K.
on 1 Oct 2019

So I looked at the excel table itself to calculate the mean and it had the same flipped situation. Since it appears that if we only look at the first few days it is as expected then I think it is possible there is something wrong with the data. Your data stops at the 11th hour instead of the full 24 for the last day. perhaps at some point the data got off. I do not know how you would figure it out but I think that is up to you with your data.

To fix the RH I would do the same thing as last time where you just find the places it is missing and fix it manually.

Sign in to comment.

Andrei Bobrov
on 1 Oct 2019

Edited: Andrei Bobrov
on 1 Oct 2019

T = readtable('parko_hourly_1_1_2015_eos_16_5_2015_T_RH MINE.xlsx','sheet','Φύλλο1');

T = T(~isnan(T.minute),[1:5,7:8]);

T.YEAR = str2double(T.YEAR);

T{:,{'AIR_TEMP_DegC','RH'}} = str2double(T{:,6:7});

T = T(:,[1:5,8:9]);

T_hour = varfun(@(x)mean(x,'omitnan'),T,'InputVariables',{'AIR_TEMP_DegC','RH'},'GroupingVariables','HOUR');

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.