How to put (tab delimited) text files together removing header text?
Mostrar comentarios más antiguos
Hi, I have many text files in the following format:
Name of the file
Date
Other useless data
Column1 [unit] Column2 [unit] Column3 [unit] Column4 [unit] ...
0.025 6.8 9.4 9.5 ...
0.050 2.8 4.4 4.2 ...
0.075 3.3 7.4 6.1 ...
...
I would like to copy all the data from all the files into a single file. I am familiar with the command:
!copy a.txt+b.txt ab.txt
However, I would like to remove all header lines and have only the numerical data in the new file (and then put a new header line in the first row so that 'tdfread' can read it easily). I would like my output file to look like this
MyHeader1 MyHeader2 MyHeader3 MyHeader4 ...
0.025 6.8 9.4 9.5 ...
0.050 2.8 4.4 4.2 ...
0.075 3.3 7.4 6.1 ...
...
Another challenge is that there are several thousands of files, so I would need an automated procedure to read the files after one another. Or alternatively, a way to select all the files in a folder to concatenate. Unfortunately they are not conveniently named so I cannot construct the file names in a for loop for example. Any help is very much appreciated.
1 comentario
dpb
el 11 de Nov. de 2013
Are the number of header lines in each file the same?
As for the obtaining all files in a subdirectory,
d=dir('*.txt');
and then iterate over d.name
This should be basically trivial if the headerlines are consistent; a little bit of a pain otherwise.
Respuesta aceptada
Más respuestas (3)
G A
el 12 de Nov. de 2013
you can use this algorithm:
fid1=fopen('fileName1','w');%open output file to write headers
fprintf(fid1,formatSpec,H1,H2,Hn);%write headers into the file
fid2=fopen('fileName2');%open file with the data
A = fscanf(fid2, '%f');%read from file numerical data only
fclose(fid2);
save(fid1,'-ascii','-tabs','-append','A');%append data to the output file
2 comentarios
dpb
el 12 de Nov. de 2013
fid2=fopen('fileName2');%open file with the data
A = fscanf(fid2, '%f');%read from file numerical data only
The above will fail for these files w/ the header lines...
László Arany
el 12 de Nov. de 2013
László Arany
el 12 de Nov. de 2013
2 comentarios
László Arany
el 16 de Nov. de 2013
dpb
el 16 de Nov. de 2013
OK...I'll go back and delete previous and then you can clean up the unnecessary comments leaving only a clean response in database going forward for somebody else's later use, perhaps. At least that's the hope in Answers--how much different it is in reality than a conventional newsgroup in that regard I've my doubts...
Alex Z.
el 15 de Jun. de 2017
0 votos
This can be done in EasyMorph using Append transformation. The tool is free.
Categorías
Más información sobre Text Data Preparation en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!