# Need to sort the number in the increasing order using MATLAB script, shown as a sample text file.

조회 수: 3(최근 30일)
Ravi Shankar 29 Nov 2019
The current avilable pattern is as follows,
0.0,A
2.0,B
5.00,C
0.10,D
5.00,E
0.10,F
1.00,G
0.10,H
10.00,I
0.10,J
2.0,K
2.0,L
2.0,M
5.00,N
0.10,O
10.00,P
0.10,Q
The required pattern is as follows,
0.0,A
0.10,D
0.10,F
0.10,H
0.10,J
0.10,O
0.10,Q
1.00,G
2.0,B
2.0,K
2.0,L
2.0,M
5.00,C
5.00,E
5.00,N
10.00,I
10.00,P

로그인 to comment.

### 답변 수 (2)

Stephen Cobeldick 29 Nov 2019
Stephen Cobeldick 님이 편집함. 29 Nov 2019
You could download my FEX submission natsort:
And then import your file into a cell array of character vectors C:
D = natsort(C,'\d+\.?\d*'); % sort into the requested order.
Where D contains the sorted character vectors, which you can check:
>> D(:)
ans =
'0.0,A'
'0.10,D'
'0.10,F'
'0.10,H'
'0.10,J'
'0.10,O'
'0.10,Q'
'1.00,G'
'2.0,B'
'2.0,K'
'2.0,L'
'2.0,M'
'5.00,C'
'5.00,E'
'5.00,N'
'10.00,I'
'10.00,P'
If you want, save it to file:
[fid,msg] = fopen('out.txt','wt');
assert(fid>=3,msg)
fprintf('%s\n',D{:});
fclose(fid);

#### 댓글 수: 3

Ravi Shankar 2 Dec 2019
Hi Stephen,
Thanks for the information that you provided.
I am able to read the content inside Text File which this command,
After that when i run this below command i am getting following error,
D = natsort(C,'\d+\.?\d*');
Undefined function or variable 'natsort'.
Can you help me on this issue.
Thank you,
Stephen Cobeldick 2 Dec 2019
"Can you help me on this issue."
Of course. Here is the very first sentence of my answer:
"You could download my FEX submission natsort:"
Did you DOWNLOAD my FEX submssion from the link that I gave you? You will then need to unzip it into the current folder (or somewhere on the MATLAB Search Path).
Ravi Shankar 3 Dec 2019
Thanks for the information Stephen.

로그인 to comment.

Andrei Bobrov 29 Nov 2019
T = sortrows(T)
writetable(T,'new2.txt','delimiter',',','WriteVariableNames',0)

#### 댓글 수: 2

Stephen Cobeldick 29 Nov 2019
Note that this method changes the numeric data format, the output file looks like this:
0.1,D
0.1,F
0.1,H
0.1,J
0.1,O
0.1,Q
1,G
2,B
2,K
2,L
2,M
5,C
5,E
5,N
10,I
10,P
Given the varaible number of trailing digits, it would be fiddly to make this work using writetable. The answer I provided gives the data in exactly the format shown in the question (i.e. unchanged from the input format).
Ravi Shankar 3 Dec 2019
Thanks for the information Andrei Bobrov.

로그인 to comment.

이 질문에 답변하려면 로그인을(를) 수행하십시오.

R2015b

Translated by