monts in year sequence, string, matrix

5 vues (au cours des 30 derniers jours)
Nikola Ostojic
Nikola Ostojic le 16 Jan 2021
Commenté : Nikola Ostojic le 16 Jan 2021
I have a series of 365 days. I need to divide the elements of the array into months with 31, 28, 31, 30 .. days and add the values ​​for the months.
The result should be a series of 12 months with aggregated values ​​for each month.
can i have a reshape function?

Réponse acceptée

Walter Roberson
Walter Roberson le 16 Jan 2021
Convert to a timeseries() object and use retime()
Or:
Data = rand(365,1);
Data_timestamp = datetime(2021, 1, 1:365).'; %use non-leap year !
month_totals = accumarray(month(Data_timestamp), Data)
month_totals = 12×1
17.6917 12.5502 14.1349 17.2993 14.2127 17.4742 16.3479 14.0845 13.4153 15.4119
  1 commentaire
Nikola Ostojic
Nikola Ostojic le 16 Jan 2021
Thanks!!
This work :)

Connectez-vous pour commenter.

Plus de réponses (1)

dpb
dpb le 16 Jan 2021
Add the date to a timetable and retime with aggregation--
tt=timetable(datetime(yr,1,1:365).',data); % make timetable of days and your data
ttAgg=retime(tt,'monthly','sum');
  1 commentaire
Nikola Ostojic
Nikola Ostojic le 16 Jan 2021
Thanks for the reply!! :))
I believe it works, but i already got the reply.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by