MATLAB字符串输入If语句

MATLAB字符串输入If语句,matlab,Matlab,我想做一个程序,问一个是或不是的问题。基于该答案,程序将继续或终止。我一直收到一个错误,因为数组没有相同的维度。我试图使用strcmp(),但失败了。我不明白“真”或“假”如何帮助我区分不同的单词和大写字母。(我需要测试每个字母吗?)如果输入的是“是”、“是”、“是”、“y”中的任何一个单词,我希望程序继续运行,如果输入的是“否”、“否”、“n”,我真的想理解,==不知怎的感觉错了。 多谢各位 ZZ=input('Do you want to know when you''ll turn 100

我想做一个程序,问一个是或不是的问题。基于该答案,程序将继续或终止。我一直收到一个错误,因为数组没有相同的维度。我试图使用strcmp(),但失败了。我不明白“真”或“假”如何帮助我区分不同的单词和大写字母。(我需要测试每个字母吗?)如果输入的是“是”、“是”、“是”、“y”中的任何一个单词,我希望程序继续运行,如果输入的是“否”、“否”、“n”,我真的想理解,==不知怎的感觉错了。 多谢各位

ZZ=input('Do you want to know when you''ll turn 100?: ', 's');
NN={'no','NO','No','n'}
YY={'yes','YES','Yes','y'}

XX=strcmp(ZZ(NN),ZZ(YY)); %I thought this line would let MATLAB know everything is ok

if ZZ=='no' || ZZ=='NO' || ZZ=='No' || ZZ=='nO' || ZZ=='n'
 disp('Thank You.') 
 disp('Come again.')

elseif ZZ=='yes' || ZZ=='YES'|| ZZ=='Yes'|| ZZ=='y'

 x=input('Enter your age: '); %x is your age.
 .....

我认为如果你需要你的程序运行不止一次,你需要一个
for
或者
while
循环

zz = 'yes';
while strcmpi(zz(1),'y')       
    x = input('Enter your age: ');   
    zz = input('Do you want to know when you''ll turn 100?: ', 's'); 
end

只需检查第一个字母,如果是“n”,则为“否”,如果是“y”,则为“是”。您可以使用不区分大小写的
strcmpi
。另一个有趣的选项是
questdlg
。它会打开一个可自定义的窗口,您可以单击“是”或“否”按钮。谢谢您的建议。我想把这个概念用在更大的词上。这是个好主意吗?您不处理
ZZ=y
案例
strcmpi('y','yes')==0
假设用户输入的是或否。问题陈述非常明确:
如果输入的是'yes','yes','yes','y','y',我希望程序继续运行。
在循环比较数组的第一个元素(zz)和字母'y'时是否执行此操作?因为这是真的,所以循环运行。这是否意味着我可以给“strcmpi”写更多的字母?(比如strcmpi(zz(n),'n','n','o','y','y',…)好吧,任何不以'y'开头的东西都会使条件为假,程序将不会运行。如果您要求包含多个真条件,那么还有其他方法可以做到这一点。