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....

 채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2013년 9월 23일

7 개 추천

Use
if isequal(f{1} ,'january')

댓글 수: 7

Azzi Abdelmalek
Azzi Abdelmalek 2013년 9월 23일
[ 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 2013년 9월 24일
Thank you very very much! I understand it well and it works! :) :)
Jan
Jan 2013년 9월 24일
편집: Jan 2013년 9월 24일
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 2013년 9월 24일
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 2022년 11월 26일
good

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Variables에 대해 자세히 알아보기

질문:

2013년 9월 23일

댓글:

2022년 11월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by