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

4 vues (au cours des 30 derniers jours)
Cantor Set
Cantor Set le 18 Fév 2020
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');

Réponse acceptée

Star Strider
Star Strider le 18 Fév 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

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by