Loading ascii data file with headers

19 visualizaciones (últimos 30 días)
David Polcari
David Polcari el 25 de Abr. de 2013
Comentada: Maryam Huck el 1 de Mayo de 2021
Hi,
I am having trouble loading a data file into matlab with some headers. Here is an sample of what I have:
Series_6_2
Sweep_6_2_1 4.924117200E+04 13:40:41.171
"Index" "Distance[m]" "I-tip[A]"
0 0.000000000E+00 1.647949222E-09
1 3.100000000E-07 1.665649396E-09
2 6.200000000E-07 1.679992701E-09
3 9.300000000E-07 1.701660146E-09
4 1.240000000E-06 1.721191412E-09
5 1.550000000E-06 1.745300238E-09
6 1.860000000E-06 1.777038627E-09
7 2.170000000E-06 1.811218286E-09
8 2.480000000E-06 1.844787545E-09
9 2.790000000E-06 1.878662115E-09
10 3.100000000E-06 1.914672865E-09
11 3.410000000E-06 1.954650886E-09
12 3.720000000E-06 1.990966725E-09
I would like to have just a matrix with the numerical values. Any ideas?
  1 comentario
Maryam Huck
Maryam Huck el 1 de Mayo de 2021
Hi, How to open the data, when the structure given above, repeats several time? i.e.:
Header = Parameters
Data
Header = Parameters
Data
Header = Parameters
Data
Header = Parameters
Data
How to then extract all the data, each in different rows ?

Iniciar sesión para comentar.

Respuesta aceptada

Matt Kindig
Matt Kindig el 25 de Abr. de 2013
This should do it
fid = fopen('path/to/your/file.txt', 'rt');
Data = textscan(fid, '%d %f %f', 'headerLines', 3, 'CollectOutput', true);
fclose(fid);
Data= cell2mat( Data);
  2 comentarios
David Polcari
David Polcari el 25 de Abr. de 2013
Quick follow up: I am trying to use inputdlg to prompt the user to enter the filename:
filename = input('Enter filename with extension: ','s');
I want to use filename in the rest of your lines but can't seem to get it to work. Any ideas?
Iain
Iain el 3 de Feb. de 2014
uigetfile would be better than filename. Just remember to concatenate the path & filename it returns into "filename", then,
fid = fopen(filename,'rt');

Iniciar sesión para comentar.

Más respuestas (2)

Cedric
Cedric el 25 de Abr. de 2013
Editada: Cedric el 25 de Abr. de 2013
The following would be an option:
[index, distance, tip_A] = textread('myFile.txt', '%d %f %f', 'headerlines', 3) ;
  3 comentarios
Matt Kindig
Matt Kindig el 25 de Abr. de 2013
The textscan() function (that I've used below) will automatically stop once the pattern is no longer found, which means that it should ignore the text at the bottom of the file. I'm not sure about textread() though.
Cedric
Cedric el 25 de Abr. de 2013
Editada: Cedric el 25 de Abr. de 2013
Yes, until they implement the 'footerlines' option for TEXTREAD ;-), Matt's solution with TEXTSCAN is the way to go if you have a footer.

Iniciar sesión para comentar.


itay
itay el 3 de Feb. de 2014
i recommend you to use importdata. try it and tell me.

Categorías

Más información sobre Data Import and Export en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by