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

Dic*_*tan 0 matlab

当我输入超过3个字符时,我的系统会给我a/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
Run Code Online (Sandbox Code Playgroud)

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

Nra*_*ras 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
Run Code Online (Sandbox Code Playgroud)

将要求用户输入'f0'或'f1'.

作为替代方案,您可以考虑将字符串与strcmp()以下内容进行比较:

if strcmp(a, 'f0')
    %// something
elseif strmpc(a, 'f1')
    %// something else
else
    disp('Please enter f0 or f1 only');
end
Run Code Online (Sandbox Code Playgroud)