MATLAB Answers

Sorting matrices

1 view (last 30 days)
Jason
Jason on 6 Apr 2011
so I have two matrices:
A = [4 6 3 2 9 0 1 5 7 8]
B = [6 5 2 4 0 8 3 7 4 9]
I want to sort matrix A in ascending order, but I want B to correspond with the sorting so that the column match. so if I sort(A), I want B to look like this:
A = [0 1 2 3 4 5 6 7 8 9]
B = [8 3 4 2 6 7 5 4 9 0]
Matrix B can have more than one rows. B is not to be sorted, it just follow the sorting of matrix A. A and B can be in one matrix so as long as I can sort the first row, all the following rows will follow. I would like some ideas about doing this. Thanks.

  0 Comments

Sign in to comment.

Accepted Answer

Matt Fig
Matt Fig on 6 Apr 2011
[As,I] = sort(A);
Bs = B(I);
To sort along the rows, use the dim argument to SORT.

  5 Comments

Show 2 older comments
Matt Fig
Matt Fig on 6 Apr 2011
Sean de has the correct solution to this further problem. When working with matrices and sorting along dim2, I contains the column indices of the sort for each row.
Thus you must use them that way when indexing into B.
Jason
Jason on 6 Apr 2011
Got it now. Thanks.
Mohamed Helmy
Mohamed Helmy on 26 Apr 2011
Thanksssssssss

Sign in to comment.

More Answers (1)

Tim Zaman
Tim Zaman on 6 Apr 2011
Append A to B so that
i believe the code is C=[A;B] so that:
C = [4 6 3 2 9 0 1 5 7 8;
6 5 2 4 0 8 3 7 4 9]
Then you say "sort(C,1)" so that the sorting is done for the first column
Have fun
PS makeup and layout in this textbox is awful

  1 Comment

Sean de Wolski
Sean de Wolski on 6 Apr 2011
What about it is awful?

Sign in to comment.

Sign in to answer this question.

Tags

Products