How to sort or rearrange a column with respect to the other column?!
22 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mariam Sheha
le 17 Juin 2016
Commenté : Mariam Sheha
le 17 Juin 2016
Hello Everybody;
wish you are all doing well;
if i have a data of two columns and i want to sort one of the columns in a descending order and also keep the other column fixed and likened with the changed one, how can i do that?! assuming that column 1 is the ID of column two
sample data:
241 5
1245 4
684 4
806 4
674 3
Appreciating your help ;
0 commentaires
Réponse acceptée
Azzi Abdelmalek
le 17 Juin 2016
Modifié(e) : Azzi Abdelmalek
le 17 Juin 2016
Use sortrows function. For example
A=[241 5;1245 4;684 4;806 4;674 3]
B=sortrows(A,2)
% Or by descending order
B=sortrows(A,-2)
5 commentaires
Plus de réponses (1)
Shameer Parmar
le 17 Juin 2016
Modifié(e) : Shameer Parmar
le 17 Juin 2016
Hello Mariam,
For your given sample data:
A =
241 5
1245 4
684 4
806 4
674 3
use following code:
A = [241, 5; 1245, 4; 684, 4; 806, 4; 674, 3];
B(:,1) = sort(A(:,1),'descend');
for i=1:length(A)
B(i,2)=A(find(ismember(A(:,1),B(i))),2);
end
B
OutPut will be like in '*descending*' order
B =
1245 4
806 4
684 4
674 3
241 5
3 commentaires
Guillaume
le 17 Juin 2016
Both sortrows and sort allows you to specify the direction. I recommend using sortrows as it's more suited to what you want.
If you were to use sort, I would use the 2nd return value to reorder the other columns rather than a loop and ismember:
[B(:, 1), order] = sort(A(:, 1), 'descend');
B(:, 2) = A(order, 2);
As said, sortrows as per Azzi's answer is better.
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!