Aggregating numbers based on first column index

10 Ansichten (letzte 30 Tage)
Mido
Mido am 4 Nov. 2016
Kommentiert: Mido am 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]

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by