pick arrays from matrix with condition

Hi, I have a matrix:
2 2 2 1
2 2 1 1
1 1 9 1
2 2 0 1
I need to pick rows that have same first number and sum them, but order of picking is important. In this case i need to pick first two rows and sum, then pick third and finaly fourth row; after that all the first numbers of column of new matrix should be the same depending on matrix sumed, so in the end there should be:
2 4 3 2
1 1 9 1
2 2 0 1
Any suggestions?

 Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 12 Mai 2012

0 Stimmen

I = cumsum([true;diff(a(:,1))~=0]);
ii = fullfact(size(a));
out = accumarray([I(ii(:,1)), ii(:,2)],a(:))

Weitere Antworten (0)

Kategorien

Mehr zu Operators and Elementary Operations finden Sie in Hilfe-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