if statement - working with characters

I am executing the following code:
x = inputdlg({'Month', 'Population renewal', 'Death rate'}, 'Inputs')
f = getfield(x,{1});
if (f == 'January')
b = 0.5
else
b = 0.7
end
and I am getting an error that says "??? Undefined function or method 'eq' for input arguments of type 'cell'"
Please do tell me where I am going wrong....

 Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 23 de Sept. de 2013
Use
if isequal(f{1} ,'january')

7 comentarios

Azzi Abdelmalek
Azzi Abdelmalek el 23 de Sept. de 2013
[ Ojaswita commented]
Thanks alot for the answer... can you pls explain the logic too so that I can always have it in mind for next time... :)
And also what if I want to say that if f is january, february or march?
f={'january'} % is a cell array
f{1} % is char
'jenuery'==f{1} % the result is the comparison of each character,
isequal('january',f{1}) will compare the two words, the result is 0 or 1
%for you last question
ismember(f,{'janury','march'})
Ojaswita
Ojaswita el 24 de Sept. de 2013
Thank you very very much! I understand it well and it works! :) :)
Jan
Jan el 24 de Sept. de 2013
Editada: Jan el 24 de Sept. de 2013
For the comparison of strings, I'd prefer strcmp. This would even accept a cell string as input:
if strcmp(f, 'January')
Or
if strcmp(f{1}, 'January')
Ojaswita
Ojaswita el 24 de Sept. de 2013
It works equally well with strcmp... I tried strcmp before too but i didnt know how to insert my 'or' requirement. As in if f = january/february/march etc etc...
any(strcmp(f,{'janury','march'}))
Gwangil Mun
Gwangil Mun el 26 de Nov. de 2022
good

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Preguntada:

el 23 de Sept. de 2013

Comentada:

el 26 de Nov. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by