文件帮助中心文件
将四元数转换为旋转矩阵
RotationMatrix = rotmat(Quat,RotationType)
例子
RotationMatrix.= rotmat(quat.那旋转型)转换四元数,quat.,到等效的旋转矩阵表示。
RotationMatrix.= rotmat(quat.那旋转型)
RotationMatrix.
quat.
旋转型
全部收缩
定义用于点旋转的四元数。
θ= 45;伽玛= 30;quat =四元音([0,θ,伽玛],'eulerd'那'Zyx'那'观点')
quat =四元素0.8924 + 0.23912i + 0.36964J + 0.099046K
将四元数转换为旋转矩阵。
RotationMatrix = Rotmat(Quat,'观点')
RotationMatrix =3×30.7071 -0.0000 0.7071 0.3536 0.8660 -0.3536 -0.6124 0.5000 0.6124
要验证旋转矩阵,直接创建与旋转对应的两个旋转矩阵y- 和X-axes。乘以旋转矩阵并与输出进行比较罗马。
罗马
θ= 45;伽玛= 30;ry = [cosd(θ)0 sind(θ);......0 1 0;......-sind(θ)0 cosd(θ)];rx = [1 0 0;......0 COSD(GAMMA)-sind(伽玛);......0 Sind(伽玛)COSD(伽玛)];RotationMatrixVerification = RX * RY
RotationMatrixVerification =3×30.7071 0 0.7071 0.3536 0.8660 -0.3536 -0.6124 0.5000 0.6124
定义用于帧旋转的四元数。
θ= 45;伽玛= 30;quat =四元音([0,θ,伽玛],'eulerd'那'Zyx'那'框架')
quat =四元素0.8924 + 0.23912i + 0.36964J - 0.099046K
RotationMatrix = Rotmat(Quat,'框架')
RotationMatrix =3×30.7071 -0.0000 -0.7071 0.3536 0.8660 0.3536 0.6124 -0.5000 0.6124
θ= 45;伽玛= 30;ry = [cosd(θ)0 -sind(θ);......0 1 0;......Sind(θ)0 cosd(θ)];rx = [1 0 0;......0 cosd(γ)sind(伽玛);......0 -sind(伽马)cosd(伽玛)];RotationMatrixVerification = RX * RY
RotationMatrixVerification =3×30.7071 0 -0.7071 0.3536 0.8660 0.3536 0.6124 -0.5000 0.6124
创建一个3×1标准化的四元数向量。
qvec =标准化(四元数(Randn(3,4)));
将四元数阵列转换为旋转矩阵。页面罗马塔雷对应于线性指数QVEC.。
罗马塔雷
QVEC.
rotmatarray = rotmat(qvec,'框架');
认为QVEC.和罗马塔雷对应于一系列旋转。将四元旋转旋转结合成单个表示,然后将四元数旋转应用于任意初始化的笛卡尔点。
loc =标准化(Randn(1,3));quat = prod(qvec);旋转框架(QUAT,LOC)
ans =.1×3.0.9524 0.5297 0.9013
将旋转矩阵组合成单个表示,然后将旋转矩阵应用于相同的初始笛卡尔点。验证四元旋转和旋转矩阵导致相同的方向。
totalrotmat =眼睛(3);为了i = 1:尺寸(rotmatarray,3)totalrotmat = rotmatarray(:,:,i)* totalrotmat;结尾totalrotmat * loc'
ans =.3×10.9524 0.5297 0.9013
四元素要转换,指定为标量,矢量,矩阵或多维数组。
数据类型:四元素
四元素
'框架'
'观点'
由此表示的旋转类型RotationMatrix.输出,指定为'框架'或者'观点'。
数据类型:char|细绳
char
细绳
旋转矩阵表示,作为3×3矩阵或3×3返回 -N多维数组。
如果quat.是标量,RotationMatrix.作为3×3矩阵返回。
如果quat.是非标量的,RotationMatrix.作为3-by-3返回 -N多维阵列,在哪里RotationMatrix(:,:我)是对应的旋转矩阵quat(i)。
RotationMatrix(:,:我)
quat(i)
旋转矩阵的数据类型与基础数据类型相同quat.。
数据类型:单身的|双倍的
单身的
双倍的
给出了表格的四分之一
问: = 一种 + B. 一世 + C j + D. K. 那
用于帧旋转的等效旋转矩阵被定义为
[ 2 一种 2 - 1 + 2 B. 2 2 B. C + 2 一种 D. 2 B. D. - 2 一种 C 2 B. C - 2 一种 D. 2 一种 2 - 1 + 2 C 2 2 C D. + 2 一种 B. 2 B. D. + 2 一种 C 2 C D. - 2 一种 B. 2 一种 2 - 1 + 2 D. 2 ] 。
用于点旋转的等效旋转矩阵是帧旋转矩阵的转换:
[ 2 一种 2 - 1 + 2 B. 2 2 B. C - 2 一种 D. 2 B. D. + 2 一种 C 2 B. C + 2 一种 D. 2 一种 2 - 1 + 2 C 2 2 C D. - 2 一种 B. 2 B. D. - 2 一种 C 2 C D. + 2 一种 B. 2 一种 2 - 1 + 2 D. 2 ] 。
[1] Kuipers,杰克B.四元数和旋转序列:具有轨道,航空航天和虚拟现实的应用的底漆。普林斯顿,新泽:普林斯顿大学出版社,2007年。
欧莱尔
eulerd.
Rotvec.
rotvecd.
您有此示例的修改版本。您是否希望使用您的编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
联系您当地的办公室