我想在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
答案 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