MATLAB Answers

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

11 views (last 30 days)
Cantor Set
Cantor Set on 18 Feb 2020
Answered: Star Strider on 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 Comments

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 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 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!