MATLAB Answers


Matlab Text File header information reading and ploting

Asked by Matlab User on 2 Aug 2016
Latest activity Commented on by Rena Berman on 30 Oct 2016
Hi, I am trying to plot multiple text files with many block sizes in matlab, i was able to plot each text file. My problem. My problem is with header information reading. The header information has same string comments such as, date, year, measurement types, but header length can vary between 20-25. My question is that how can i handle varying text file header information? Im trying to use some character signs or string from the text header to make skip and jump into numerical matrix. By the way my numerical matrix has 24 (rows) by 5 (Columns). Number of rows are not always 24,but can also vary between 1-24 depending on text data collection ( I was able to handle matrix indexes, just for your information). Thanks!!!


Is there any particular string that always starts the first line of the headers, and any string that always starts the last line of the headers? Or is there any information at a consistent place in the header that tells you how many header lines you have? Or is there any character that appears at the beginning of each header line? Or does each header line start with a non-blank character but the first line of data starts with a blank?
Examples would probably help.
I am not sure if those numbers on the left are for illustration or are part of the file?
I am not sure if multiple structures like that can occur in one file, as your examples show two like that seemingly together?
(Answers dev) restored question

Sign in to comment.


No tags entered yet.

1 Answer

Answer by Pham Dang on 10 Aug 2016
Edited by Pham Dang on 10 Aug 2016

You may consider a small processing to format your file. If you are on Linux, you can use the following command in the matlab console :
!grep -e "data\|^[ ]\+[0-9]" Example-1.txt
This will display only the lines with the word "data" or "begining with several spaces followed by a number". In order to save this result to a file you should use a command like this :
!grep -e "data\|^[ ]\+[0-9]" Example-1.txt > data-noheaders.txt
It will write the output lines to the file "data-noheaders.txt". You may consider using the eval command in order to process all your files.
Then you can parse the resulting file line by line ; if it begins by "data", create a new data matrix and fill it with the following data until a new "data" string is read.
Hope this helps


Sign in to comment.