extract decimal number from a file name

2 visualizaciones (últimos 30 días)
Ayman Mounir
Ayman Mounir el 4 de En. de 2021
Comentada: Ayman Mounir el 6 de En. de 2021
Hello everyone,
Firwstly, Happy new year.
I have have a file name such as '2C2C', sometimes the number has a fraction for example '2.5C3C' or 2.5C3.5C'. I need to exract these number at all cases (with fraction and without).
Thanks in advance

Respuesta aceptada

Star Strider
Star Strider el 4 de En. de 2021
Try this:
filnam = {'2C2C', '2.5C3.5C'};
nrs = cellfun(@(x)sscanf(x, '%fC%fC'), filnam, 'Unif',0)
Result = cell2mat(nrs).'
producing:
Result =
2 2
2.5 3.5
.
  2 comentarios
Ayman Mounir
Ayman Mounir el 4 de En. de 2021
Thanks I appreciate it.
but i meant the file name would be 'NNN_2.5C3C_BlaBla'. So i ahve to extract the part which has 2.5C3C first.
Star Strider
Star Strider el 4 de En. de 2021
This is turning out to be a moving target!
Try this:
filnam = {'NNN_2.5C3C_BlaBla'; 'NNN_2.5C3.5C_BlaBla'};
nrs = regexp(filnam, '(\d.\d)|\d', 'match')
nrs{1}, nrs{2}
producing:
nrs =
2×1 cell array
{1×2 cell}
{1×2 cell}
ans =
1×2 cell array
{'2.5'} {'3'}
ans =
1×2 cell array
{'2.5'} {'3.5'}
.

Iniciar sesión para comentar.

Más respuestas (2)

KSSV
KSSV el 4 de En. de 2021
str = '2C2C' ;
str = '2.5C3C' ;
% str = '2.5C3.5C' ;
idx = strfind(str,'C') ;
num1 = str2num(str(1:idx(1)-1))
num2 = str2num(str(idx(1)+1:idx(2)-1))
  1 comentario
Ayman Mounir
Ayman Mounir el 4 de En. de 2021
Thanks I appreciate it.
but i meant the file name would be 'NNN_2.5C3C_BlaBla'. So i ahve to extract the part which has 2.5C3C first.

Iniciar sesión para comentar.


Stephen23
Stephen23 el 4 de En. de 2021
The most efficient solution by far:
C = {'NNN_2.5C3C_BlaBla'; 'NNN_2.5C3.5C_BlaBla'};
M = sscanf([C{:}],'%*[^_]_%fC%fC_',[2,Inf]).'
M = 2×2
2.5000 3.0000 2.5000 3.5000

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by