I have a large double matrix similar to below
testz(1,:)=[325, 325, 325, 269, 369, 369];
testz(2,:)=[3, 2, 5, 2, 6, 9];
and I would like to reduce the data so that the sum of row 2 (3+2+5 and 2+6+9) is shown for each row 1 value, ie.
test_output =
325 369
10 17
How can I do that?! Thanks in advance...

 Akzeptierte Antwort

the cyclist
the cyclist am 27 Jan. 2017
Bearbeitet: the cyclist am 27 Jan. 2017

0 Stimmen

testz(1,:)=[325, 325, 325, 369, 369, 369];
testz(2,:)=[3, 2, 5, 2, 6, 9];
[uniquez1,~,idx] = unique(testz(1,:)');
sumz2 = accumarray(idx,testz(2,:)');
test_output = [uniquez1,sumz2]'
(It looks like maybe you wrote "269" once, where you meant "369".)

Weitere Antworten (0)

Kategorien

Mehr zu Get Started with MATLAB 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