Need to sort the number in the increasing order using MATLAB script, shown as a sample text file.
Mostrar comentarios más antiguos
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
Respuestas (2)
You could download my FEX submission natsort:
And then import your file into a cell array of character vectors C:
C = regexp(fileread('new.txt'),'\S+','match');
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 comentarios
Ravi Shankar
el 2 de Dic. de 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
el 3 de Dic. de 2019
Andrei Bobrov
el 29 de Nov. de 2019
T = readtable('new.txt')
T = sortrows(T)
writetable(T,'new2.txt','delimiter',',','WriteVariableNames',0)
2 comentarios
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
el 3 de Dic. de 2019
Categorías
Más información sobre Shifting and Sorting Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!