当我输入超过3个字符时,我的系统会给我一个/ m错误
a = input('Please type f0 or f1: ' , 's');
if a == 'f0';
Run_f0
elseif a == 'f1';
Run_f1
else
disp('Please enter f0 or f1 only');
end
我该怎么做才能解决此错误? 提前致谢
答案 0 :(得分:5)
Matlab将比较两个字符串的每个字符。如果一个字符串比另一个字符串长,则无需比较,它将引发错误。你可以通过强制用户重复输入来绕过这个,直到他给出一个有效的输入:
valid = {'f0', 'f1'}
a = input('Please type f0 or f1: ' , 's');
while not(ismember(a, valid)) %// or: while not(any(strcmp(a, valid)))
a = input('Please really type f0 or f1: ' , 's');
end
系统会要求用户输入' f0'或者' f1'。
作为替代方案,您可以考虑将字符串与strcmp()
进行比较:
if strcmp(a, 'f0')
%// something
elseif strmpc(a, 'f1')
%// something else
else
disp('Please enter f0 or f1 only');
end
答案 1 :(得分:1)
要比较字符串,您应该使用 strcmp
功能a='12345'
strcmp('f01',a)
返回:0(错误)
a='f01'
strcmp('f01',a)
返回:1(真)