MATLAB Answers

How do I read begin to read data after a string?

2 views (last 30 days)
In a txt file, I want to collect fcz data after "Concrete Stresses", how do I also Import the txt file to do so appropriately.
CONCRETE STRESSES
*****************
ELMT fcx fcy fcz Vcxy Vcyz Vcxz
(MPa) (MPa) (MPa) (MPa) (MPa) (MPa)
1 0.000 0.000 0.000 0.000 0.000 0.000
2 0.000 0.000 0.000 0.000 0.000 0.000
3 0.000 0.000 0.000 0.000 0.000 0.000
4 0.000 0.000 0.000 0.000 0.000 0.000
5 0.000 0.000 0.000 0.000 0.000 0.000

  0 Comments

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 5 Aug 2020
filename = 'ConcreteStresses.txt';
S = fileread(filename);
idx = regexp(S, '^\s*\d', 'once', 'lineanchors');
fmt = repmat('%f', 1, 7);
data = cell2mat( textscan(S(idx:end), fmt) );
fcz = data(:,4);

  1 Comment

Walter Roberson
Walter Roberson on 5 Aug 2020
In the case where the position of the first line of numeric data is known, it is even easier:
filename = 'ConcreteStresses.txt';
fid = fopen(filename);
fmt = repmat('%f', 1, 7);
data = cell2mat( textscan(fid, fmt, 'headerlines', 6));
fclose(fid);
fcz = data(:,4);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by