Filter löschen
Filter löschen

Adding matrices rows having the same id

3 Ansichten (letzte 30 Tage)
Mo H
Mo H am 22 Mär. 2020
Kommentiert: Adam Danz am 22 Mär. 2020
Hello, I would like to sum rows of two matrices if they have the sam id (first column). For instance, I have a matrix A and matrix B:
A = [
1 4 5 6;
2 5 5 3;
3 9 8 2];
B = [
4 5 6 2;
2 9 4 1;
1 5 7 9;
3 5 6 7;
1 4 5 3];
I would like to get matrix C such that it looks at the first column and add the other columns if id is the same in both matrices.
C = [
1 13 17 18;
2 14 9 4;
3 14 14 9;
4 5 6 2];
Thank you
  3 Kommentare
Mo H
Mo H am 22 Mär. 2020
Adam provided a great answer, and I hope it is helpful for the community
Adam Danz
Adam Danz am 22 Mär. 2020
Thanks for restoring the question and for the compliment, Mohammad.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Adam Danz
Adam Danz am 22 Mär. 2020
Bearbeitet: Adam Danz am 22 Mär. 2020
Assuming A and B have the same number of columns,
AB = [A;B];
C = [unique(AB(:,1)), splitapply(@(x) sum(x,1), AB(:,2:end), AB(:,1))];
Result:
C =
1 13 17 18
2 14 9 4
3 14 14 9
4 5 6 2

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by