How to sort the rows of an array according to another vector?

8 Ansichten (letzte 30 Tage)
If I have an array D:
D=[1 1 0 1 0 1; 4 6 7 8 9 9; 1 1 1 2 3 4]; b=[2 44 0];
each row in D crossponds to a number in b:
the first row crossponds to 2
the second row crossponds to 44
the third row crossponds to 0
I want to sort b in a descending order and according to the sorted vector b the rows of the array D are arranged such that
D=[4 6 7 8 9 9; 1 1 0 1 0 1; 1 1 1 2 3 4]; bb=sort(b,'descend');

Akzeptierte Antwort

Star Strider
Star Strider am 18 Feb. 2020
Try this:
D=[1 1 0 1 0 1; 4 6 7 8 9 9; 1 1 1 2 3 4];
b=[2 44 0];
[bb,idx] = sort(b,'descend');
Out = D(idx,:)
producing:
Out =
4 6 7 8 9 9
1 1 0 1 0 1
1 1 1 2 3 4

Weitere Antworten (0)

Kategorien

Mehr zu Shifting and Sorting Matrices 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