Matlab函数内部的char

时间:2019-03-10 15:30:39

标签: matlab function

我想在MATLAB中运行turnMatrix(30,X)。我收到此错误消息:

  

未定义的函数或变量'X'。

如果我将X更改为1,则表示成功。我的代码如下。

function turnMatrix(d,b)

a = d * pi / 180 ;

if b == X %  1
    R = [1 0 0 0 ; 0 cos(a) -sin(a) 0 ; 0 sin(a) cos(a) 0 ; 0 0 0 1];

elseif b == Y % 2
    R = [cos(a) 0 sin(a) 0 ; 0 1 0 0 ; -sin(a) 0 cos(a) 0 ; 0 0 0 1];

elseif b == Z % 3
    R = [1 0 0 0 ; 0 cos(a) -sin(a) 0 ; 0 sin(a) cos(a) 0 ; 0 0 0 1];
end

R

end

1 个答案:

答案 0 :(得分:0)

您似乎真的希望/想要将第二个输入指定为字符/字符串,即

turnMatrix(30,'X')

请注意'X'周围的单引号,即单引号实际上是字符串'X',而不是变量X的值。

然后在所需的功能内

if b == 'X'

elseif b == 'Y'

elseif b == 'Z'

end

也就是说,将变量b的值与字符'X'进行比较。通过这种方式,您正在尝试将变量b的值与变量X的值进行比较,但是变量X不存在,因此会出现错误。

还请注意,如果您比较的不是单个字符(甚至在单个字符的情况下),则最好使用切换大小写结构而不是if-else

switch b
   case 'X'

   case 'Y'

   case 'Z'

end