Finding yearly average of data in a matrix

5 vues (au cours des 30 derniers jours)
Billy Dipre
Billy Dipre le 30 Mar 2020
Réponse apportée : dpb le 30 Mar 2020
I have a 13459x2 matrix where the first column is the year the data was taken and the second column is the data value. The data was taken "daily" for each year but a lot of the years do not actually have the same number of data points. I was originally going through and looking for which rows the years started and ended and my code looked like this:
mean1978 = (sum(iceArea(1:34,2)))/34;
But this became really tedious considering this is over the course of 40 years and 13459 rows to sift through. So is there a way where I could just say something like
mean1978 = (sum(iceArea(==1978,2)))/ % # of rows ==1978;
so I just enter the year instead of finding the start and end rows?

Réponse acceptée

dpb
dpb le 30 Mar 2020
Of course there is..."grouping variables"
[meanByYear,yr,yrcounts]=groupsummary(iceArea(:,2),iceArea(:,1),'mean');

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by