Wanting to isolate a number from a string

1 vue (au cours des 30 derniers jours)
Stephen Devlin
Stephen Devlin le 28 Juin 2018
Commenté : Stephen Devlin le 28 Juin 2018
hi,
I have a struct with a list of filenames which I want to extract a piece of data from, the filename is in the format
ZYXW1_4.0kHz_1_P.tif
or
ZYXW1_26.0kHz_1_P.tif
All I wish to be left with is
4.0_1
or
(4.0,1)
So that I can write those digits onto an image.I have used strep and regex to isolate pieces of data in the past from a string but have not been able to figure out how to isolate data before an expression such as kHz etc.
I have
str=('ZYXW1_4.0kHz_1_P.tif')
expression = '\d*\.\dkHz';
matchStr = regexp(str,expression,'match')
but it won't give me the "_1".
Any ideas?

Réponse acceptée

Stephen23
Stephen23 le 28 Juin 2018
Modifié(e) : Stephen23 le 28 Juin 2018
>> str = 'ZYXW1_4.0kHz_1_P.tif';
>> regexprep(str,'^.*_(\d+\.?\d*)\D+_(\d+)_\D+$','($1,$2)')
ans = (4.0,1)
  1 commentaire
Stephen Devlin
Stephen Devlin le 28 Juin 2018
I just came up with
str=('ZYXW1_26.0kHz_1_P.tif')
expression = '\d*\.\dkHz\w\d*';
matchStr = regexp(str,expression,'match')
text_out=strrep(matchStr,'kHz','')
But I'll accept this because its better, thank you Stephen

Connectez-vous pour commenter.

Plus de réponses (0)

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