Finding yearly average of data in a matrix

4 views (last 30 days)
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?

Accepted Answer

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

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!