我正在尝试使用下面的旋转矩阵来旋转一个“轨道”:
[cos(angle) -sin(angle) 0;
sin(angle) cos (angle) 0;
0 0 1 ]
我认为首先应该使用sphere()函数:
[x y z] = sphere;
然后将x、y和z连接在一起形成一个向量:
xyz = [x; y; z];
rotatMat = [cos(angle) -sin(angle) 0; sin(angle) cos (angle) 0; 0 0 1 ];
将旋转矩阵和xyz相乘以旋转轨道:
rotated = rotatMat .* xyz;
然而,xyz
的维度是62x22
,而我的rotatMat
只有3x3
,所以我不能将它们相乘。
我该如何解决这个问题?
谢谢您提前。
xyz
应该有 3 列,语法为xyz*rotatMat'
,并且有 3 行,语法为rotatMat*xyz
。输出应该相同(但转置)。 - Ratbertxyz
坐标列排更自然,但这只是个人口味! - Ratbert[x;y;z]
更为常见,其中x
、y
和z
是数字。例如,请参见维基百科。因此,如果有多个点,则每个点都将是一列(x
、y
、z
将是向量)。但当然也可以反过来做。 - Luis Mendo