Aggregating numbers based on first column index

1 vue (au cours des 30 derniers jours)
Mido
Mido le 4 Nov 2016
Commenté : Mido le 5 Nov 2016
Hi
I have a matrix as follows
x=[1 3;
1 4;
1 6;
2 5;
2 7;
3 4;
3 11;
3 1;
3 2]
I want to write a code or a loop that aggregates the numbers in the second column for each different number in the first column.
The result should be
y= [1 13;
2 12;
3 18]

Réponse acceptée

Walter Roberson
Walter Roberson le 4 Nov 2016
[unique_keys, ~, uq_idx] = unique(x(:,1));
totaled_data = accumarray(uq_idx, x(:,2));
y = [unique_keys, totaled_data];
  1 commentaire
Mido
Mido le 5 Nov 2016
I am really thankful to you. This solved my problem.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by