Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

dot

说明

示例

C = dot(A,B) 返回 AB标量点积

  • 如果 AB 是向量,则它们的长度必须相同。

  • 如果 AB 为矩阵或多维数组,则它们必须具有相同大小。在本例中,dot 函数将 AB 视为向量集合。该函数计算对应向量沿大小不等于 1 的第一个数组维度的叉积。

示例

C = dot(A,B,dim) 计算 AB 沿维度 dim 的点积。dim 输入是一个正整数标量。

示例

全部折叠

创建两个简单的三元素向量。

A = [4 -1 2];
B = [2 -2 -1];

计算 AB 的点积。

C = dot(A,B)
C = 8

结果为 8,因为

C = A(1)*B(1) + A(2)*B(2) + A(3)*B(3)

创建两个复数向量。

A = [1+i 1-i -1+i -1-i];
B = [3-4i 6-2i 1+2i 4+3i];

计算 AB 的点积。

C = dot(A,B)
C = 1.0000 - 5.0000i

结果为一个复数标量,因为 AB 是复数。通常,两个复数向量的点积也是复数。获取一个复数向量与其自身的点积除外。

计算 A 与自身的内积。

D = dot(A,A)
D = 8

结果为一个实数标量。向量与自身的内积与向量 norm(A) 的欧几里德长度相关。

创建两个矩阵。

A = [1 2 3;4 5 6;7 8 9];
B = [9 8 7;6 5 4;3 2 1];

AB 的点积。

C = dot(A,B)
C = 1×3

    54    57    54

结果 C 包含三个不同的点积。dotAB 的各列视为向量,并计算对应列的点积。因此,例如 C(1) = 54A(:,1)B(:,1) 的点积。

计算 AB 的点积,并将 rows 视为向量。

D = dot(A,B,2)
D = 3×1

    46
    73
    46

在本例中,D(1) = 46A(1,:)B(1,:) 的点积。

创建两个多维数组。

A = cat(3,[1 1;1 1],[2 3;4 5],[6 7;8 9])
A = 
A(:,:,1) =

     1     1
     1     1


A(:,:,2) =

     2     3
     4     5


A(:,:,3) =

     6     7
     8     9

B = cat(3,[2 2;2 2],[10 11;12 13],[14 15; 16 17])
B = 
B(:,:,1) =

     2     2
     2     2


B(:,:,2) =

    10    11
    12    13


B(:,:,3) =

    14    15
    16    17

计算 AB 沿第三个维度 (dim = 3) 的点积。

C = dot(A,B,3)
C = 2×2

   106   140
   178   220

结果 C 包含四个不同的点积。第一个点积 C(1,1) = 106 等于 A(1,1,:)B(1,1,:) 的点积。

输入参数

全部折叠

输入数组,指定为数值数组。

数据类型: single | double
复数支持:

沿其运算的维度,指定为正整数标量。如果未指定值,则默认值是大小不等于 1 的第一个数组维度。

考虑两个二维输入数组:AB

  • dot(A,B,1)AB 的列视为向量,并返回对应列的点积。

  • dot(A,B,2)AB 的行视为向量,并返回对应行的点积。

dot(A,B,1) column-wise computation and dot(A,B,2) row-wise computation

如果 dim 大于 ndims(A),则 dot 返回 conj(A).*B

详细信息

全部折叠

标量点积

长度为 n 的两个实数向量的标量点积等于

u·v=i=1nuivi=u1v1+u2v2+...+unvn.

对于实数向量,此关系可互换,这样 dot(u,v) 等于 dot(v,u)。如果点积等于零,则 u 和 v 垂直。

对于复数向量,点积涉及复共轭。这将确保任何向量与自身的内积都为实数正定矩阵。

u·v=i=1nu¯ivi.

与实数向量的关系不同,复数关系不可互换,这样 dot(u,v) 等于 conj(dot(v,u))

算法

  • 当输入 AB 为实数或复数向量时,dot 函数将这些向量视为列向量,并且 dot(A,B)sum(conj(A).*B) 相同。

  • 当输入为矩阵或多维数组时,dim 参数确定 sum 函数作用于哪些维度。在本例中,dot(A,B)sum(conj(A).*B,dim) 的大小相同。

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | | |