主要内容

,。*

Element-wise四元数乘法

自从R2018b

语法

描述

例子

quatC=一个。*B返回数组中的元素四元数乘法的四元数。

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

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

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

例子

全部折叠

创建两个向量,一个B,用元素的元素。

一个=四元数([1:4;8]);B =一个;C = a * B
C =2 x1四元数的数组-28 + 4 + 6 j + 8 k -124 + 60 + 70 j + 80 k

创建两个3 x3的数组,一个B,用元素的元素。

=重塑(四元数(randn (9, 4)), 3、3);B =重塑(四元数(randn (9, 4)), 3、3);C = a * B
C =3 x3的四元数的数组我0.60169 + 2.4332 - 2.5844 j k我-0.49513 + 1.1722 + 4.4401 + 0.51646 j - 1.217 k我2.3126 + 0.16856 + 1.0474 j - 1.0921 k -4.2329 + 2.4547 + 3.7768 j + 0.77484 k我-0.65232 - 0.43112 0.90073 - 1.4645 j - k我-1.8897 - 0.99593 + 3.8331 j k我-4.4159 + 2.1926 + 1.9037 + 0.12013 j - 4.0303 k -2.0232 + 0.4205 - 0.17288 j + 3.8529 k -2.9137 - 5.5239 - 1.3676 j + 3.0654 k

注意,四元数乘法交换:

isequal (C, b . *)
ans =逻辑0

创建一个行向量一个和一个列向量b,然后相乘。1×3行向量和4-by-1列向量结合产生一个4-by-3矩阵与所有的组合元素相乘。

一个= [0 (“四元数”),(“四元数”),四元数(randn (1,4)))
一个=1 x3四元数的数组0 + 0 + 0 j + 0 k 1 + 0 + 0 j + 0 k 0.53767 + 1.8339 - 2.2588 j + 0.86217 k
b =四元数(randn (4, 4))
b =4 x1四元数的数组我0.31877 + 3.5784 + 0.7254 j - 0.12414 k -1.3077 + 2.7694 - 0.063055 j + 1.4897 j k我-0.43359 - 1.3499 + 0.71474 + 1.409 k 0.34262 + 3.0349 - 0.20497 j + 1.4172 k
b。*
ans =4 x3四元数的数组0 + 0 + 0 j + 0 k我0.31877 + 3.5784 + 0.7254 j - 0.12414 k -4.6454 + 2.1636 + 2.9828 j + 9.6214 k 0 + 0 + 0 j + 0 k -1.3077 + 2.7694 - 0.063055 j + 1.4897 j k我-7.2087 - 4.2197 + 2.5758 + 5.8136 k 0 + 0 + 0 j + 0 k我-0.43359 - 1.3499 + 0.71474 j k + 1.409 2.6421 - 5.32 1.3547 - 2.3841 j - k 0 + 0 + 0 j + 0 k 0.34262 + 3.0349 - 0.20497 j + 1.4172 k -7.0663 - 0.76439 - 0.86648 j + 7.5369 k

输入参数

全部折叠

数组相乘,指定为一个四元数,四元数的数组,一个真正的标量,或一个实数数组。

一个B必须兼容的大小。在最简单的情况下,他们可以是相同的大小或一个可以一个标量。两个输入有兼容的大小,如果每一个维度,输入的尺寸大小都是一样的或其中一个是1。

数据类型:四元数||

数组相乘,指定为一个四元数,四元数的数组,一个真正的标量,或一个实数数组。

一个B必须兼容的大小。在最简单的情况下,他们可以是相同的大小或一个可以一个标量。两个输入有兼容的大小,如果每一个维度,输入的尺寸大小都是一样的或其中一个是1。

数据类型:四元数||

输出参数

全部折叠

四元数的产品,作为一个标量,返回向量,矩阵,或多维数组。

数据类型:四元数

算法

全部折叠

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

给定一个四元数,

= 一个 + 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

另请参阅

功能

对象