Averaging daily values from annual data
Afficher commentaires plus anciens
Hi there,
I have a 2 column matrix of Date (dd:mm:yyyy ss:mm:hh) and wave height for 8372 records over a year, one record per hour.
What would be the best way to find a mean wave height for each day and plot this? Some days have more records than others.
I am fairly new to Matlab and understand that I need to convert using datenum first. Please help!
Alternatively, how would I run a moving average over the data for a specified number of records?
Thank you.
1 commentaire
per isakson
le 31 Juil 2015
"8372"   that is not a full year of hourly data. Which hours are missing?
Réponses (1)
Andrei Bobrov
le 31 Juil 2015
f = fopen('data.txt');
c = textscan(f,'%s %s %f');
fclose(f);
[y m d] = datevec(datenum(strcat(c{1:2}),'dd:mm:yyyySS:MM:HH'));
[a,~,c1] = unique([y m d],'rows');
out = [a, accumarray(c1,c{3},[],@mean);
Catégories
En savoir plus sur Time Series Objects dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!