How do we sort one column of an alpha-numeric table and make the other columns to adjust accordingly?
조회 수: 2 (최근 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!