How do I read in a text file and sort it by a column
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
sixwwwwww
2013-10-12
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 个评论
sixwwwwww
2013-10-12
You are welcome and sorry for misunderstanding about EPC because I don't know about EPC.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Text Files 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!