How to sort a table by two columns?
36 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I want to sort a table by two column. The table hast three columns in total, one of them is a string. It looks kindof like this:
T= [1 4 'a';
3 2 'b';
1 3 'c';
1 1 'd';
2 5 'e';
3 3 'f';
2 2 'g']
and I want it to look like this:
T_new= [ 1 1 'd';
1 3 'c';
1 4 'a';
2 2 'g';
2 5 'e':
3 2 'b';
3 3 'f']
I tried using the Function:
T=sortrows(T,[1 2]);
but it only sorts the first column but not the second:
T_false= [ 1 4 'a';
1 3 'c';
1 1 'd';
2 5 'e';
2 2 'g';
3 2 'b';
3 3 'f']
I think it's pry because of the third column being a string because I have been using this function befor with only numeric matrices and it worked fine.
I would be thankful for any tipps.
Thank you, Anja
0 commentaires
Réponse acceptée
Kevin Chng
le 5 Déc 2018
Modifié(e) : Kevin Chng
le 5 Déc 2018
I follow your solution, it sorts two columns for me.
See :
a = [1 3 1 1 2 3 2];
b = [4 2 3 1 5 3 2];
c = ['a' 'b' 'c' 'd' 'e' 'f' 'g'];
t=table(a',b',c');
t = sortrows(t,[1,2])
Result :
T =
7×3 table
Var1 Var2 Var3
____ ____ ____
1 1 d
1 3 c
1 4 a
2 2 g
2 5 e
3 2 b
3 3 f
3 commentaires
Kevin Chng
le 5 Déc 2018
Hi Anja,
Your updated one is correct, there are many unseen decimal point. try:
format long
load testtable.mat
H = sortrows(H,[1,2]);
%display the top 10, then you will understand
H(1:,10,:)
from the code above, you will understand since some decimal point is hidden.
Accept my answer if it answers your question.
Plus de réponses (0)
Voir également
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!