Parsing a text file by character
Show older comments
I would like to parse a 331 string of characters into cells but the number of characters per cell is not the same for all?
For example, if I have text like the following
24359_435934009____________90909
where _=space
And I want to put it into a matrix such that
characters 1-5 go into column 1 (a.k.a 24359)
character 6 goes into column 2 (ak.a. NaN)
characters 7-10 goes into column 3
etc
The data comes as a .txt file.
1 Comment
Azzi Abdelmalek
on 8 Apr 2014
Why 7-10 ? and not 7-15
Answers (2)
Alberto
on 8 Apr 2014
0 votes
If there are several lines, you can extract them using this:
fid=fopen(fileName)
B = textscan(fid, '%f %f %f', 'Delimiter'-' ', 'MultipleDelimsAsOne', 1);
fclose(fid)
It extracts three columns, if you need more columns change the part '%f %f %f'. But this only works if there are 3 numbres in each row.
If you have diferent numbers in each row, you should parse using regexp for each line.
1 Comment
Alberto
on 10 Apr 2014
The extraction mode depends on what you know about the structure of the file. I think this should work:
B = textscan(fid, '%f %f %f %f %f %f %f %f', 'Delimiter', ' ', 'MultipleDelimsAsOne', 1);
Categories
Find more on Text Data Preparation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!