Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

dot

説明

C = dot(A,B)ABスカラーのドット積を返します。

  • AB がベクトルの場合、それらは同じ長さでなければなりません。

  • AB が行列または多次元配列の場合、それらのサイズは同じでなければなりません。この場合、関数 dotAB をベクトルの集合として扱います。この関数は、サイズが 1 でない最初の配列次元に沿って対応するベクトルのドット積を計算します。

C = dot(A,B,dim) は、次元 dim に沿って AB のドット積を評価します。dim 入力は、正の整数のスカラーです。

すべて折りたたむ

単純な 3 要素のベクトルを 2 つ作成します。

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)

2 つの複素数ベクトルを作成します。

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 が複素数であるため、結果は複素数スカラーになります。一般的には、2 つの複素数ベクトルのドット積は複素数になります。例外は、複素数ベクトルとそれ自身のドット積を取る場合です。

A とそれ自身の内積を求めます。

D = dot(A,A)
D = 8

結果は、実数スカラーになります。ベクトルとそれ自身の内積は、ベクトルのユークリッド長 norm(A) に関係します。

2 つの行列を作成します。

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 には 3 つの別個のドット積が含まれます。dotAB の列をベクトルとして扱い、対応する列のドット積を計算します。そのため、たとえば、C(1) = 54A(:,1)B(:,1) のドット積です。

"行" をベクトルとして扱い、AB のドット積を求めます。

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

    46
    73
    46

この場合、D(1) = 46A(1,:)B(1,:) のドット積です。

2 つの多次元配列を作成します。

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

3 番目の次元 (dim = 3) に沿って AB のドット積を計算します。

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

   106   140
   178   220

結果の C には 4 つの別個のドット積が含まれます。最初のドット積 C(1,1) = 106A(1,1,:)B(1,1,:) のドット積に等しくなります。

入力引数

すべて折りたたむ

入力配列。数値配列として指定します。

データ型: single | double
複素数のサポート: あり

演算の対象の次元。正の整数のスカラーとして指定します。値が指定されていない場合、既定値はサイズが 1 ではない最初の配列次元です。

2 つの 2 次元の入力配列 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

dimndims(A) より大きい場合、dotconj(A).*B を返します。

詳細

すべて折りたたむ

スカラーのドット積

長さ n の 2 つの実数ベクトルのスカラーのドット積は次のようになります。

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

実数ベクトルの場合、この関係は可換であり、dot(u,v)dot(v,u) は等しくなります。ドット積が 0 の場合、u と v は垂直になります。

複素数ベクトルの場合、ドット積には複素共役が含まれます。これにより、任意のベクトルとそれ自身のドット積は必ず実数の正定値になります。

u·v=i=1nu¯ivi.

実数ベクトルの関係とは異なり、複素数の関係は可換ではなく、dot(u,v)conj(dot(v,u)) と等しくなります。

アルゴリズム

  • 入力 A および B が実数または複素数のベクトルの場合、関数 dot はそれらを列ベクトルとして扱い、dot(A,B)sum(conj(A).*B) と同じになります。

  • 入力が行列または多次元配列の場合、dim 引数により関数 sum で演算を行う次元が決定されます。この場合、dot(A,B)sum(conj(A).*B,dim) と同じになります。

拡張機能

バージョン履歴

R2006a より前に導入

参考

| | | |