What's the best way to read an ASCII/txt file containing a few lines of text and then the data I want to load into a matrix?
24 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I will have files converted to something like this:
Pad 1:1 /This is what the converter writes out /Not sure if it will have the same number of comments every time /information /more text
0.0 14.666
0.2 134.567
0.3 1567.435
... ...
and so forth. I want to read only the numerical data into a matrix to later work with and prefer it to not be a hack job, and something that will consistently read in many files. Thanks!
- Mark
0 comentarios
Respuesta aceptada
Cedric
el 8 de Oct. de 2013
Editada: Cedric
el 8 de Oct. de 2013
If you always have the same number of header lines, use TEXTSCAN and set the parameter 'HeaderLines' to a relevant value, e.g. 2 if you have two lines of header in each file.
In the example that you provided, it seems that you have have a line of text, an empty line, and then numbers, so you should be able to work with something like:
fid = fopen( 'myFile.txt', 'r' ) ;
data = textscan( fid, '%f%f', 'HeaderLines', 2 ) ;
fclose( fid ) ;
6 comentarios
Cedric
el 8 de Oct. de 2013
Editada: Cedric
el 8 de Oct. de 2013
You're welcome, just be careful not to loose the first line of data; if it was read by FGETL, it won't be read by TEXTSCAN as the file pointer was moved by FGETL after this line. This is why I have the concatenation in my last solution.
Más respuestas (0)
Ver también
Categorías
Más información sobre Data Import and Export en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!