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

9 visualizzazioni (ultimi 30 giorni)
Cantor Set il 18 Feb 2020
Risposto: Star Strider il 18 Feb 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');
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Star Strider il 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
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by