主要内容

mtimes, *

四元数乘法

自从R2018b

语法

描述

例子

quatC=一个*B实现了四元数乘法如果一个B是一个四元数。要么一个B必须是一个标量。

您可以使用四元数乘法构成旋转运算符:

  • 组成的序列帧旋转,用四元数在旋转所需的序列的顺序。例如,应用p四元数了四元数、乘的顺序魁人党。旋转操作符就 ( p ) v ( p ) ,在那里v代表对象中指定旋转四元数形式。*代表接合。

  • 组成的序列点旋转,用倒序的四元数所需的旋转序列。例如,应用p四元数了四元数,乘以在相反的顺序,qp。旋转操作符就 ( p ) v ( p )

例子

全部折叠

创建一个4-by-1列向量,一个和一个标量b。乘一个b

一个=四元数(randn (4, 4))
一个=4 x1四元数的数组0.53767 + 0.31877 + 3.5784 j + 0.7254 k我1.8339 - 1.3077 + 2.7694 j k我-2.2588 - 0.43359 - 1.3499 - 0.063055 j k 0.86217 + 0.34262 + 0.71474 + 3.0349 j - 0.20497 k
b =四元数(randn (1,4))
b =四元数-0.12414 + 1.4897 + 1.409 j + 1.4172 k
C = A * b
C =4 x1四元数的数组我-6.6117 + 4.8105 + 0.94224 j - 4.2097 k我-2.0925 + 6.9079 + 3.9995 j - 3.3614 k我1.8155 - 6.2313 1.89 - 1.336 j - k -4.6033 + 5.8317 + 0.047161 j - 2.791 k

输入参数

全部折叠

输入为正片叠底,指定为一个四元数,四元数的数组,真正的标量,或一系列真正的标量。

如果Bnonscalar,那么一个必须是标量。

数据类型:四元数||

输入为正片叠底,指定为一个四元数,四元数的数组,真正的标量,或一系列真正的标量。

如果一个nonscalar,那么B必须是标量。

数据类型:四元数||

输出参数

全部折叠

四元数的产品,返回为一个四元数和四元数的数组。

数据类型:四元数

算法

全部折叠

四元数乘法,一个真正的标量

给出了四元数

= 一个 + b + c j + d k,

的产物和一个真正的标量β

β = β 一个 + β b + β c j + β d k

四元数由四元数乘法标量

四元数的基础元素的定义,

2 = j 2 = k 2 = ijk = - - - - - - 1 ,

可以扩展填充表总结四元数乘法基础元素:

1 j k
1 1 j k
−1 k −j
j j −k −1
k k j −我 −1

读表时,首先读取行,例如:ij = k和霁=−k。

给定两个四元数, = 一个 + b + c j + d k, p = 一个 p + b p + c p j + d p k 乘法可以扩展为:

z = p = ( 一个 p + b p + c p j + d p k ) ( 一个 + b + c j + d k ) = 一个 p 一个 + 一个 p b + 一个 p c j + 一个 p d k + b p 一个 + b p b 2 + b p c ij + b p d 本土知识 + c p 一个 j + c p b + c p c j 2 + c p d jk + d p 一个 k + d p b ki + d p c kj + d p d k 2

您可以使用四元数乘法表简化方程:

z = p = 一个 p 一个 + 一个 p b + 一个 p c j + 一个 p d k + b p 一个 b p b + b p c k b p d j + c p 一个 j c p b k c p c + c p d + d p 一个 k + d p b j d p c d p d

引用

[1]Kuipers,杰克B。四元数与旋转序列:底漆应用轨道,航空航天和虚拟现实。普林斯顿,纽约:普林斯顿大学出版社,2007年。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2018b

另请参阅

功能

对象