我在使用文本作为 while 循环的条件时遇到一些问题,目前的基本编码是:
result=struct('val','yes');
while result.val=='yes'
result.val=input('more digits?');
end
正如您所见,我想做的是只要用户输入"is"就保持循环继续。但这就是我遇到的问题之一;有没有办法摆脱写“”的需要(例如,是而不是"is")?其次,当我运行代码时,它给我错误消息“使用 == 时出错,矩阵尺寸必须一致。”。我意识到这与"is"这个词比“否”更长有关,但我不知道如何解决它。尽管考虑到程序无论如何都会结束,这并不是一个真正的问题,但这是我想摆脱的烦恼。
最佳答案
要比较字符串,请使用 strcmp
,或 strcmpi
忽略大小写。它将处理不同长度字符串的比较。例如:
strcmpi(result.val,'yes')
如果您想在输入的开头搜索子字符串,例如“y”,请考虑 strncmpi
(strncmpi(result.val,'y',1)
) 或仅检查第一个字符 (result.val(1)
)。
关于matlab - 在 while 循环中使用文本作为条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984833/