if string is abc return value

Hi.
I have filename is string and then I want to find specific name.
if filename have ' a ' xxx = 1
if filename have ' b ' xxx = 2
if filename have ' c ' xxx = 3
thank you.

7 comentarios

Jan
Jan el 9 de Abr. de 2019
Please explain more details. What does "filename have ' a '" mean? Start with an 'a' or contain an 'a' anywhere?
if filename(1) == 'a'
or
if any(filename == 'a')
Jassy
Jassy el 9 de Abr. de 2019
Thank you for your assistance.
"filename have ' a '" mean?
I mean filename is #####a .jpg
Adam Danz
Adam Danz el 9 de Abr. de 2019
Editada: Adam Danz el 9 de Abr. de 2019
So these are all =1?
  • aaaaa.jpg
  • axxxx.jpg
  • a.jpg
What about this?
  • xxA.jpg (capital letter
  • xxxx.app (file extension)
Jan
Jan el 9 de Abr. de 2019
With the space between the "a" and the ".jpg"? What should happen for "b#####a .jpg"? Is "#" a digit? Please do not let the readers guess the details.
Jassy
Jassy el 9 de Abr. de 2019
All filename is not have a,b,c in the same file.
Ex. Z1q0001a , Z2q0002a
Z1q0001b , Z2q0002b
Z4f0001c , Dsf0002c
and not have
  • xxA.jpg
  • xxxx.app
because all filename have a,b,c each file.
Adam Danz
Adam Danz el 9 de Abr. de 2019
Editada: Adam Danz el 9 de Abr. de 2019
what if filename has 'a' and 'b' what value does it get?
This question needs to be defined more clearly.
Adam Danz
Adam Danz el 9 de Abr. de 2019
So, it's always the last letter of the filename?

Iniciar sesión para comentar.

 Respuesta aceptada

Jan
Jan el 9 de Abr. de 2019
Maybe:
[fPath, fName, fExt] = fileparts(filename);
if endsWith(fName, 'a ') % With the space as in your example
xxx = 1;
elseif endsWith(fName, 'b ')
xxx = 2;
... etc
end
Or:
[fPath, fName, fExt] = fileparts(filename);
switch fname(end-1) % Again assuming you mean the 2nd last character
case 'a'
xxx = 1;
case 'b'
xxx = 2
... etc
otherwise
error('Unexpected charatcer')
end

1 comentario

Jassy
Jassy el 9 de Abr. de 2019
Thank you so much. It saved me
and next time I will give detail more than this.

Iniciar sesión para comentar.

Más respuestas (1)

Adam Danz
Adam Danz el 9 de Abr. de 2019

0 votos

The cell array 'key' lists all possible last-characters and the order determines the value.
filename = 'Z2q0002b.jpg';
[~, fName] = fileparts(filename);
key = {'a' 'b' 'c'};
xxx = find(strcmp(key, fName(end)));
xxx =
2

Categorías

Más información sobre Thermal Analysis en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 9 de Abr. de 2019

Comentada:

el 9 de Abr. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by