Filter löschen
Filter löschen

Extracting number value from string from string using sscanf()

2 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Image Analyst
Image Analyst am 26 Aug. 2012
Bearbeitet: Image Analyst am 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))
  2 Kommentare
Dimitris M
Dimitris M am 26 Aug. 2012
Perfect ! Thank you !
Jan
Jan am 27 Aug. 2012
Bearbeitet: Jan am 27 Aug. 2012
strfind(s, '_') is faster than find(s == '_').

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by