How do we sort one column of an alpha-numeric table and make the other columns to adjust accordingly?
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Matt Fig
2012-10-5
编辑:Matt Fig
2012-10-5
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})]
更多回答(1 个)
Thomas
2012-10-5
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)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!