Sort Matrix by rows
Mostrar comentarios más antiguos
I have a matrix which first row indicates index numbers and second indicated the data. For example it goes like this:
1 2 3 4 5 6
23 45 10 90 11 34
I want to sort these descending but I don't want to loose the corresponding index either.
4 2 6 1 5 3
90 45 34 23 11 10
I have a large amount of data so it needs to be efficient too. How can I do that?
Respuesta aceptada
Más respuestas (3)
Torsten
el 23 de Oct. de 2014
1 voto
B=(sortrows(A',-2))';
where A is your input matrix.
Best wishes
Torsten.
Geoff Hayes
el 23 de Oct. de 2014
Ege - consider using sortrows to perform the above task
A = [1 2 3 4 5 6
23 45 10 90 11 34];
B = sortrows(A',-2)';
We transpose A so that we can sort on the second column. The negative indicates descending sort order. The result is then transposed to get the desired output as
B =
4 2 6 1 5 3
90 45 34 23 11 10
Transpose your matrix, use sortrows along the second column, transpose it back and flip it left to right to get descending order
m = [1 2 3 4 5 6
23 45 10 90 11 34];
fliplr(sortrows(m', 2)')
Categorías
Más información sobre Shifting and Sorting Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!