Filter löschen
Filter löschen

sort a matrix based on a maximum value in each row

2 Ansichten (letzte 30 Tage)
Amine Ben Ayara
Amine Ben Ayara am 5 Feb. 2016
Kommentiert: Star Strider am 5 Feb. 2016
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.

Akzeptierte Antwort

Star Strider
Star Strider am 5 Feb. 2016
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 Kommentare
Amine Ben Ayara
Amine Ben Ayara am 5 Feb. 2016
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
Star Strider
Star Strider am 5 Feb. 2016
My pleasure!
Quite definitely!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by