Hi,
I have a .txt file consisting of a header section and data section (attached). I am interested in only reading the header portion of the file, but what is the best way to do this? I would like the final output to be stored as a char as shown in the picture below, and have tried fscanf to do so but can't quite figure it out.
I am quite a novice with Matlab so any help is greatly appreciated!

 Akzeptierte Antwort

Image Analyst
Image Analyst am 17 Jan. 2017

0 Stimmen

Try this:
str = fileread('test.txt')
index = strfind(str, '[Data]');
header = str(1:(index-1));

5 Kommentare

You might perhaps want to go one step further and use
header(ismember(header, [10 13])) = '';
if you really want to remove all carriage returns and linefeeds as implied in your image. Your data would probably be easier to parse if you did not remove them.
Dhani Dharmaprani
Dhani Dharmaprani am 17 Jan. 2017
Thank you so much, this works perfectly!
If you don't mind me asking, does this just use strfind to find the index of '[Data]' in the file, and then reads from the beginning of the file until the value before '[Data]'?
Thank you so kindly for your help!
Walter Roberson
Walter Roberson am 17 Jan. 2017
No, the fileread() reads the entire content of the file. Then the location of [Data] is found in the resulting string, and only the part of the string up to there is kept.
leydy Garcia
leydy Garcia am 6 Feb. 2020
what is [Data] in this example?
Walter Roberson
Walter Roberson am 6 Feb. 2020
[Data] is line 295 of the user's file test.txt . It is the header that marks the end of the section the user wants to extract; the user wants the header section of the data rather than the numeric data.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by