Error with if elseif statements
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Bree
el 30 de Nov. de 2016
Comentada: Vaibhav Sharma
el 18 de Feb. de 2018
My program is set up to ask the user for an input variable, as follows:
GOAL=input('WHAT IS YOUR GOAL?(FIT=FITNESS, FB=FAT BURN, N=NEITHER): ','s');
Then, I wrote an if, elseif statement written as:
if GOAL==('FIT')
I wrote the same thing for if GOAL==('FB') and if GOAL==('N'), and each is followed by functions to be executed for whichever the user chooses.
The error message that I am getting says:
Error using == Matrix dimensions must agree.
Am I approaching it wrong? Anything helps, thanks.
1 comentario
Vaibhav Sharma
el 18 de Feb. de 2018
I get the exact message for a different function of question answering
Respuesta aceptada
bio lim
el 30 de Nov. de 2016
I suggest you to use strcmp
GOAL=input('WHAT IS YOUR GOAL?(FIT=FITNESS, FB=FAT BURN, N=NEITHER):\n ','s');
if strcmp(GOAL, 'FITNESS')
sprintf('GOOD')
elseif strcmp(GOAL, 'FB')
sprintf('ALSO GOOD')
else strcmp(GOAL, 'N')
sprintf('WHAT YOU SEEK HUMAN')
end
2 comentarios
Vaibhav Sharma
el 18 de Feb. de 2018
I too am forced to thank you for making me aware of that function
Más respuestas (1)
Daniel kiracofe
el 30 de Nov. de 2016
In matlab, strings are arrays of characters. Two strings with different lengths have different array dimensions. e.g.
'dog' is a 3x1 character array.
'bird' is a 4x1 character array
So something like this
if ('dog' == 'bird')
will give an error because you are trying to compare a 3x1 array with a 4x1 array, and to compare arrays they must have the same length.
try the strcmp() function instead. i.e
if strcmp(GOAL, 'fit')
2 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!