Extracting number value from string from string using sscanf()

5 views (last 30 days)
Hello
I have a problem trying to extract a number from a string looking like this
Seg_1169_Edgefun_1_5_2_15_90_30_3_1.000000e-001_5_1_1.000000e-001.tif
The number I am interested to extract is the 1169. Sometimes this number can be longer or shorter. The property I can use is that always there are 4 character before it 'Seg_'
I tried to work it out with the sscanf() but I didn't have any success. Do you have any recommendation ?
Thank you in advance

Accepted Answer

Image Analyst
Image Analyst on 26 Aug 2012
Edited: Image Analyst on 26 Aug 2012
Just take the string between the first and second underline and pass it in to str2double(). Try this:
s = 'Seg_1169_Edgefun_1_5_2_15_90_30_3_1.000000e-001_5_1_1.000000e-001.tif'
underlineLocations = find(s == '_')
theNumber = str2double(s(underlineLocations(1)+1:underlineLocations(2)-1))

More Answers (1)

Jan
Jan on 27 Aug 2012
The sscanf-method looks easy:
n = sscanf(s, 'Seg_%d');

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!