sorting in descending order by row

1 vue (au cours des 30 derniers jours)
arad rad
arad rad le 21 Août 2018
Commenté : Stephen23 le 22 Août 2018
hi, i have a square matrix and i need to sort it in descending order in each row, i mean from left to right along columns for each row. all the functions like sort and sortrow are in ascending order or sort in descending order by column ! thank you
  2 commentaires
Stephan
Stephan le 21 Août 2018
If you need a good performance, then accept the answer given by Stephen Cobeldick:
A = rand(12000) - 0.5;
tic
B = sort(A,2,'descend'); % The way i did it
toc
tic
C = -sort(-A.').'; `% the way Stephen Cobeldick did
toc
with result:
>> sort_performance
Elapsed time is 3.725967 seconds.
Elapsed time is 2.971930 seconds.
and the winner is... ;-)
arad rad
arad rad le 22 Août 2018
thanks it was really helpful

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 21 Août 2018
Where M is your matrix:
>> M = randi(9,4)
M =
6 1 9 5
5 1 8 8
6 4 9 9
6 3 3 4
>> -sort(-M.').'
ans =
9 6 5 1
8 8 5 1
9 9 6 4
6 4 3 3
  2 commentaires
arad rad
arad rad le 22 Août 2018
thank u
Stephen23
Stephen23 le 22 Août 2018
@arad rad: you should really use Stephan Jungs's answer.

Connectez-vous pour commenter.

Plus de réponses (1)

Stephan
Stephan le 21 Août 2018
Hi,
use:
A =
10 -12 4 8
6 -9 8 0
2 3 11 -2
1 1 9 3
>> sort(A,2,'descend')
ans =
10 8 4 -12
8 6 0 -9
11 3 2 -2
9 3 1 1
to sort descending in row-direction.
  1 commentaire
Stephen23
Stephen23 le 22 Août 2018
+1 for doing it properly.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by