Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab尺寸必须与误差一致。什么';发生什么事了?_Matlab - Fatal编程技术网

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提供条件,所以我跳过了该输入

希望这能起作用。

改用。