proper way of reading data from text file
1 次查看(过去 30 天)
显示 更早的评论
采纳的回答
Stephen23
2016-12-31
编辑:Stephen23
2016-12-31
Here is one easy way to get all of that data into one matrix, using fileread and sscanf:
>> str = fileread('data.txt');
>> vec = sscanf(str,'%f');
>> mat = reshape(vec,[],3)'
mat =
Columns 1 through 7
4 1 2016 3570 1 1 1
4 1 2016 3600 2 -4 1
4 1 2016 3600 3 5 1
Columns 8 through 14
4 1 2016 1519.3 0 0 0.00014496
4 1 2016 6786.1 0 0 -0.00016785
4 1 2016 11876 0 0 -5.722e-005
Columns 15 through 20
0.76367 0.0064783 0.14664 0.0004673 -2656.4 0.00073242
0.64332 0.0091085 -0.69379 0.0012169 -2656.1 0.00067139
0.52564 0.0081682 -0.65228 0.001173 -2656.2 0.00073242
To automatically detect how many groups there are you could do something like this:
>> grp = numel(regexp(str,'^\d\d\s+\d\d\s+\d{4}\s+\d{4}\s*$','lineanchors'))
grp =
3
>> mat = reshape(vec,[],grp)'
Note that this method assumes that your data is all numeric, and that every group contains exactly the same number of values.
0 个评论
更多回答(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!