How do I read in a text file and sort it by a column
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Aaron
el 10 de Oct. de 2013
Comentada: sixwwwwww
el 12 de Oct. de 2013
I have a file which I am trying to read and then sort by column A and then by column C. The text file is attached and has 3 columns. This is what I have tried but it will not let me use the sort function after reading it in this way:
function data = ResultsScript(filename)
fid = fopen(filename);
data = textscan(fid, '%s %f %f');
fclose(fid);
end
Then I call this function and try to sort it using:
fileName = 'Example.txt';
A = ResultsScript(fileName);
sortrows(A,[1,3]);
Running this gives the following error message:
??? Index exceeds matrix dimensions.
Error in ==> sortrows>sort_cell_back_to_front at 133
ndx = ndx(ind);
Error in ==> sortrows at 90
ndx = sort_cell_back_to_front(x_sub, col);
Error in ==> GetResults at 3
sortrows(A,[1,3]);
Any help is greatly appreciated.
2 comentarios
Respuesta aceptada
sixwwwwww
el 12 de Oct. de 2013
Dear Aaron, the problem here is that function "textscan" output data in the form of cell array which you must convert first into a matrix before using "sortrows" function because "sortrows" only accept vector or matrix data. So after converting it to proper form you can apply "sortrows". Also don't use "%s" to read values of double type instead use "%f" or better "%n". Following is the corrected code for this purpose:
fid = fopen(filename);
cell_data = textscan(fid, '%n %n %n');
fclose(fid);
matrix_data = [cell_data{:}];
After this you can apply:
sorted_data = sortrows(matrix_data, [1 3]);
2 comentarios
sixwwwwww
el 12 de Oct. de 2013
You are welcome and sorry for misunderstanding about EPC because I don't know about EPC.
Más respuestas (0)
Ver también
Categorías
Más información sobre Other Formats en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!