sort a matrix based on a maximum value in each row

I have a matrix that I first determined the max value in each row and its row index. now I need to sort the whole matrix in descendant order based on the maximums identified from the row with the larget max to the row with smallest max. example: A=[0 1 2 1 1; 0 4 3 1 2; 1 2 0.5 3 5] ( matrix is 3*5. so first I need to identify the Max in each row and its index. so now it [2; 4; 5] then I need to reorder the matrix/ all the rows based on descendant order, so first row is the one with the highest max: SortedMatrix=[ 1 2 0.5 3 5;0 4 3 1 2;0 1 2 1 1]; any suggestions? please.

 Accepted Answer

This works:
A=[0 1 2 1 1; 0 4 3 1 2; 1 2 0.5 3 5];
Arowmax = max(A, [], 2);
[~,idx] = sort(Arowmax, 'descend');
SortedMatrix = A(idx,:)
SortedMatrix =
1 2 0.5 3 5
0 4 3 1 2
0 1 2 1 1

2 Comments

Star, thank you so much, I tried this and it seems like the perfect solution. Now Im going to duplicate the process with my (15000*152) matrix! Thank you for saving my day! Can I be your best friend forever! BFF!! haha
My pleasure!
Quite definitely!

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!