How do we sort one column of an alpha-numeric table and make the other columns to adjust accordingly?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
INTRO: I import an alpha-numeric table A with the commands below:
fid = fopen('TEST_SORT.txt');
A= textscan(fid,'%f %f %s');
fclose(fid);
A=
9 5 G
1 4 B
4 3 E
2 2 D
6 1 C
3 0 I
0 9 A
7 8 H
5 7 F
8 6 J
GOAL: (1) I want to sort the rows of column 1 ascending and wish that the rows of column 2 and 3 adjust according to the sorted column 1;
(2) I want to sort the rows of the alpha-numeric column 3 and wish that the columns 1 and 2 adjust according to the sorted column 3.
PROBLEM: If I write
B=sort(A,1);
I obtain the following error:
Error using sort
DIM and MODE arguments not supported for cell arrays.
I read the documentation of sorting but it was not clear how the instructions apply to this specific situation.
I wonder if someone could help me to fix this problem.
Thank you in advance for your attention
Emerson
0 commentaires
Réponse acceptée
Matt Fig
le 5 Oct 2012
Modifié(e) : Matt Fig
le 5 Oct 2012
When I import as you explain, I get this:
A =
[10x1 double] [10x1 double] {10x1 cell}
So if your A does not look like that, you have to tell us what it does look like.
Question 1:
[A1s,I] = sort(A{1});
B = {A1s,A{2}(I),A{3}(I)}
Now look:
[num2str(A{1}) num2str(A{2}) char(A{3})]
[num2str(B{1}) num2str(B{2}) char(B{3})]
Question 2:
[A3s,I] = sort(A{3});
B = {A{1}(I),A{2}(I),A3s}
Now look:
[num2str(A{1}) num2str(A{2}) char(A{3})]
[num2str(B{1}) num2str(B{2}) char(B{3})]
Plus de réponses (1)
Thomas
le 5 Oct 2012
I guess this is what you need
a={9 5 'G'
1 4 'B'
4 3 'E'
2 2 'D'
6 1 'C'
3 0 'I'
0 9 'A'
7 8 'H'
5 7 'F'
8 6 'J'}
%to sort according to column 1
out1=sortrows(a,1)
%to sort according to column 3
out2=sortrows(a,3)
1 commentaire
Voir également
Catégories
En savoir plus sur Data Type Conversion 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!