Reading/writing text file while excluding header
25 views (last 30 days)
Show older comments
I'm new-ish to MATLAB, and until now I've only used it to perform Matrix Displacement Method analyses for structures classes.
I have large earthquake record files that I would like to read in. They have headers (4 lines) that I would like to omit, and 5 columns of acceleration data (the number of rows depends on the size of the earthquake record). Is there a way to read in this data and then write the array to a new text file? I've spent hours pouring over past forum topics, and I haven't had any luck with my attempts.
The closest I've come is to use importdata(), but the 'data' array returns dimensions that don't seem right (that, and I don't know how to access the elements of a structured array like 'data').
Hints would be much, much appreciated!
5 Comments
Walter Roberson
on 4 Apr 2013
In the above there appears to be empty lines in the headers. If those empty lines are present in the file, then you need to include those in the count of header lines.
You should not be using fprintf() for an input file.
Accepted Answer
Walter Roberson
on 4 Apr 2013
FID=fopen('test_quake.txt');
datacell = textscan(FID, '%f%f%f%f%f', 'HeaderLines', 4, 'CollectOutput', 1);
fclose(FID);
A = datacell{1};
6 Comments
Walter Roberson
on 4 Apr 2013
FID=fopen('test_quake.txt');
for K = 1 : 4; fgetl(FID); end; %throw away 4 lines
while true
[A, count] = fscanf(FID,'%f', 5);
if count == 0; break; end %end of file
.... process the line ...
end
fclose(FID);
More Answers (0)
See Also
Categories
Find more on Text Data Preparation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!