Convert 10-minute wind data into hourly wind data

1 view (last 30 days)
Hi,
I have wind data as attached, and have read it in so that
Speed - 52561x1 double
TimeStep - 52561x1 datetime
I can't figure out how to convert this data into hourly averaged data. I've tried it in excel using pivot tables but can't get the format correct so i have turned to Matlab. I have attempted multiple methods from previous questions but not very savvy with Matlab so keep getting errors. Hopefully someone can help
Thanks in advance

Accepted Answer

Adam
Adam on 15 Sep 2015
Assuming you do not have any missing times you should just be able to trim off one value from your results to have a data set of size divisible by 6 and then something like:
speeds = reshape( speed, 6, [] );
speedAvg = mean( speeds );
If you have gaps in your time array then you will, of course, need to do something more complicated to deal with those.
  2 Comments
Tadgh Cullen
Tadgh Cullen on 15 Sep 2015
That works great for the speed. How could I apply this to get the corresponding timestep? I.e basically just list out the timestep every hour in the format DD/MM/YY HH/MM?
Adam
Adam on 15 Sep 2015
You should be able to reshape your datetime array in exactly the same way. I've never really used datetime though so I'm not too familiar with all its different formats, but there are quite a few examples for formatting on the help page.
TimeStep.Format = 'dd/MM/yy HH:mm';
seems to do the job I think.

Sign in to comment.

More Answers (0)

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!