Reading numeric part of line n MATLAB

2 views (last 30 days)
Hi, I have stream gauge information as attached. I want to read the numeric part of line # 15, i.e., catchment area leaving the string part. I tried it like this:
fid_AR = fopen(['Z:\USER\Eva_Steirou\data_GRDC\',Station_name]);
charCell_AR = textscan(fid_AR,'%s','Delimiter','\n');
fclose(fid_AR);
ARLine=charCell_AR{1}{15}
I could extract line 15, but don't know how to extract only numeric part of the line in number form.

Accepted Answer

Cam Salzberger
Cam Salzberger on 7 Sep 2017
Edited: Cam Salzberger on 10 Sep 2017
Hello Poulomi,
If you know that you'll only ever have a single colon (:) character in the row, you can use that to split off the numeric part. Here's an example of how to do it with regular expressions:
s = '# Catchment area (km²): 122.300';
tok = regexp(s,'[^:]+:\s+([\S]+)','tokens');
str2double(tok{1}{1})
But you could do it even simpler with strsplit and strtrim:
c = strsplit(s,':');
str2double(strtrim(c{2}))
-Cam

More Answers (0)

Categories

Find more on Characters and Strings 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!