Main Content

dot

내적(Dot Product)

설명

C = dot(A,B)AB스칼라 내적(Scalar Dot Product)을 반환합니다.

  • AB가 벡터이면, 길이가 같아야 합니다.

  • AB가 행렬이나 다차원 배열이면 크기가 같아야 합니다. 이 경우에 dot 함수는 AB를 벡터의 모음으로 처리합니다. 함수는 크기가 1이 아닌 첫 번째 배열 차원에 따라 해당 벡터의 내적을 계산합니다.

예제

C = dot(A,B,dim)dim 차원에 따라 AB의 내적을 계산합니다. dim 입력값은 양의 정수 스칼라입니다.

예제

예제

모두 축소

요소를 3개 가진 벡터를 두 개 만듭니다.

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

결과는 실수형 스칼라입니다. 벡터에서 자기 자신과의 내적은 벡터의 유클리드 길이(Euclidean Length) 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는 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,:)의 내적이 됩니다.

두 개의 다차원 배열을 만듭니다.

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는 네 개의 개별적인 내적을 포함합니다. 첫 번째 내적 C(1,1) = 106A(1,1,:)B(1,1,:)의 내적과 같습니다.

입력 인수

모두 축소

입력 배열로, 숫자형 배열로 지정됩니다.

데이터형: single | double
복소수 지원 여부:

연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트는 크기가 1이 아닌 첫 번째 배열 차원입니다.

두 개의 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인 두 실수 벡터의 스칼라 내적은 다음과 같습니다.

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

이 관계는 실수 벡터에 대해 가환성(Commutative)이 성립하므로 dot(u,v)dot(v,u)와 같습니다. 내적이 0일 경우 uv는 서로 수직 관계입니다.

복소수 벡터의 경우 내적을 구하려면 켤레 복소수가 필요합니다. 이 결과 한 개 벡터로 내적을 구하면 양의 정부호이며 실수인 것을 알 수 있습니다.

u·v=i=1nu¯ivi.

실수 벡터간 관계와 달리 복소수 벡터간 관계는 가환성(Commutative)이 성립하지 않으므로 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 이전에 개발됨