how to sum data every year

13 views (last 30 days)
Hichem Younsi
Hichem Younsi on 3 Feb 2020
Commented: Adam Danz on 8 Feb 2020
hello
i have a 11322x6 double. i have the date in the first column, months and days in the third and the forth. on the fivth and the sixth colum i have the variables. temperature and degre days that i calculeted from temperature. now i need to sum every degre day of every year together , the problem years change the number evey 4 years so how to do it with a function or easy loop. i saw a lot of them on matlab but don't kenw how to use itnd i don't knew to apply it on my case

Accepted Answer

Adam Danz
Adam Danz on 3 Feb 2020
Edited: Adam Danz on 6 Feb 2020
No loop needed.
Use findgroups() on the appropriate column(s) to group the rows. Then use
to compute the mean of each group where data is the temperature column.
If your data contain missing values, you can use mu = splitapply(@(x), mean(data,'omitnan'), groups).
Let us know if you get stuck.
  2 Comments
Hichem Younsi
Hichem Younsi on 5 Feb 2020
so i can't apply the findgroups in an array ?
Adam Danz
Adam Danz on 5 Feb 2020
Edited: Adam Danz on 5 Feb 2020
Updated comment
You can't apply findgroups to a matrix but you can find unique rows of a table
or you can separate the columns of your matrix and use this syntax
Both of those links will show documentation that describes the syntax and provides examples.

Sign in to comment.

More Answers (1)

Hichem Younsi
Hichem Younsi on 8 Feb 2020
oof that worked thank you Adam Danz. i convert the matrix to an table and then i used the findgroups to find how many days in each mounths in years and then i used the splitapply function to sum the variable on folwngs years. GREAT THANK YOU
Adam Danz

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!