Effacer les filtres
Effacer les filtres

Extracting number value from string from string using sscanf()

2 vues (au cours des 30 derniers jours)
Dimitris M
Dimitris M le 26 Août 2012
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

Réponse acceptée

Image Analyst
Image Analyst le 26 Août 2012
Modifié(e) : Image Analyst le 26 Août 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 commentaires
Dimitris M
Dimitris M le 26 Août 2012
Perfect ! Thank you !
Jan
Jan le 27 Août 2012
Modifié(e) : Jan le 27 Août 2012
strfind(s, '_') is faster than find(s == '_').

Connectez-vous pour commenter.

Plus de réponses (1)

Jan
Jan le 27 Août 2012
The sscanf-method looks easy:
n = sscanf(s, 'Seg_%d');

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by