Average columns together that share a common value

Lets say I have a 2 x 10 matrix M
The first column being an ID, and the second a value
1, 25
3, 33
3. 45
2, 22
4, 54
4, 56
5, 23
5, 65
1, 27
2, 29
How could I average the values with the same ID such that the new matrix would be
1, 26
2, 25.5
3, 39
4, 55
5, 44

Answers (1)

D = [1, 25
3, 33
3. 45
2, 22
4, 54
4, 56
5, 23
5, 65
1, 27
2, 29];
[G,ID] = findgroups(D(:,1));
[ID splitapply(@mean,D(:,2),G)]
ans = 5×2
1.0000 26.0000 2.0000 25.5000 3.0000 39.0000 4.0000 55.0000 5.0000 44.0000

Categories

Products

Release

R2022b

Asked:

on 21 May 2023

Answered:

on 21 May 2023

Community Treasure Hunt

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

Start Hunting!