How to average a column based on another column?

8 vues (au cours des 30 derniers jours)
Leon
Leon le 20 Fév 2014
Commenté : Leon le 20 Fév 2014
For example, I have a two column data as below:
1945 23.5
1952 25.6
1952 25.9
1952 23.5
1957 26.7
1957 31.2
How do I get a two column data as below, with the left column being the unique numbers: 1945, 1952, 1957, and the second column being the average values of that year:
1945 23.5
1952 25.0
1957 28.95
I can write a loop to do this, but think it must have an easier way to do this.
Thank you@

Réponse acceptée

Matt Kindig
Matt Kindig le 20 Fév 2014
This is a good use of accumarray():
[ud,ix,iy]=unique( data(:,1));
output = [ud, accumarray(iy,data(:,2),[],@mean)];
  1 commentaire
Leon
Leon le 20 Fév 2014
So cool!
Thank you very much.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by