使用==矩阵尺寸时出错必须同意

时间:2014-09-22 07:09:18

标签: matlab

当我输入超过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

我该怎么做才能解决此错误? 提前致谢

2 个答案:

答案 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(真)