Using cases with strings

Hi, Im trying to make the following code work and it just wont seem to do what I want
Astr = '123456789'
switch Astr
case strcmp(Astr([2:4,5:7]), '234567' )
x = 5
case strcmp(Astr([2:4,5:7]), '123567' )
x = 6
case strcmp(Astr([2:4,5:7]), '345567' )
x = 7
otherwise
x = 8
end
I think it has to do with the way Im defining the string values, it keeps outputting x = 8 (the otherwise case). Please let me know how to fix thanks!

 Respuesta aceptada

Iain
Iain el 19 de Jun. de 2013

0 votos

What you put after the case needs to be every valid option to enter that case, and NOT an operation.
switch Astr([2:4,5:7])
case {'234567', '765432'}
x = 5;
case '123567'
x = 6;
case '234567'
x = 7;
otherwise
x=8;
end

1 comentario

JP
JP el 19 de Jun. de 2013
What if my Astr is constantly changing length, so I want to check a different interval?
Say for case 1, I want to check the interval 2:4,5:7, but then in case 2 I want to check the interval 3:5,6:8?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

JP
el 19 de Jun. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by