Matlab尺寸必须与误差一致。什么';发生什么事了?
我得到:Matlab尺寸必须与误差一致。什么';发生什么事了?,matlab,Matlab,我得到: Error using == ... Matrix dimensions must agree. Error (line 9) - if move2 == 'south' 发生什么事了 disp('Welcome Dr. Doofenshmirtz.'); move1 = input('You are now in room number 1. Would you like to move West or North?: ','s'); if move1 == 'nort
Error using == ... Matrix dimensions must agree.
Error (line 9) - if move2 == 'south'
发生什么事了
disp('Welcome Dr. Doofenshmirtz.');
move1 = input('You are now in room number 1. Would you like to move West or North?: ','s');
if move1 == 'north'
disp('You are now in room 4.');
move2 = input('would you like to move south or east?: ','s');
if move2 == 'south'
disp('you are back in room 1.');
elseif move 2 == 'east'
disp('you are now in room 5');
else
disp('There is no door there. You are still in room 4.');
end
end
“south”是一个包含5个字符的字符数组,
=
是一个元素级比较'south'=='north'
返回[01011]
,因为它比较每个字符
查看一下strcmpi或strcmp虽然您正在比较的两个参数都是字符串,但在MATLAB中,您不能简单地比较两组具有不同数组大小的字符串。在这方面,数组维度必须一致。 在Daniel建议的情况下,您可以使用以下任一选项: strcmp()-根据字符串的大小写比较字符串 strcmpi()-比较忽略的情况 这些命令返回一个逻辑值(0或1)-如果找到匹配项,则该值将为1(true),否则为0(False) 我已经为您重新编写了代码:
disp('Welcome Dr. Doofenshmirtz.');
move1 = input('You are now in room number 1. Would you like to move West or North?: ','s');
p = strcmpi('north',move1);
if p==1
disp('You are now in room 4.');
move2 = input('would you like to move south or east?: ','s');
z=strcmpi('South',move2);
if z==1
disp('you are back in room 1.');
else z=strcmpi('East',move2);
if z==1
disp('you are now in room 5');
else disp('There is no door there. You are still in room 4.');
end
end
end
您还没有从第一次输入中为West提供条件,所以我跳过了该输入
希望这能起作用。改用。