Average columns together that share a common value

2 次查看(过去 30 天)
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

回答(1 个)

Paul
Paul 2023-5-21
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

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by