dot
내적(Dot Product)
설명
예제
실수 벡터의 내적
요소를 3개 가진 벡터를 두 개 만듭니다.
A = [4 -1 2]; B = [2 -2 -1];
A
와 B
의 내적을 계산합니다.
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];
A
와 B
의 내적을 계산합니다.
C = dot(A,B)
C = 1.0000 - 5.0000i
A
와 B
가 복소수이므로 결과도 복소수 스칼라입니다. 일반적으로 두 복소수 벡터의 내적 또한 복소수가 됩니다. 단, 복소수 벡터에서 자기 자신과의 내적을 구할 때는 예외입니다.
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];
A
와 B
의 내적을 구합니다.
C = dot(A,B)
C = 1×3
54 57 54
결과 C
는 3개의 개별적인 내적 값을 포함합니다. dot
은 A
와 B
의 열을 벡터로 처리하고 해당 열끼리 내적을 계산합니다. 따라서 예를 들어, C(1) = 54
는 A(:,1)
과 B(:,1)
의 내적이 됩니다.
행을 벡터로 처리하여 A
와 B
의 내적을 구합니다.
D = dot(A,B,2)
D = 3×1
46
73
46
이 경우 D(1) = 46
은 A(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
)에 따라 A
와 B
의 내적을 계산합니다.
C = dot(A,B,3)
C = 2×2
106 140
178 220
결과 값 C
는 네 개의 개별적인 내적을 포함합니다. 첫 번째 내적 C(1,1) = 106
은 A(1,1,:)
과 B(1,1,:)
의 내적과 같습니다.
입력 인수
A,B
— 입력 배열
숫자형 배열
입력 배열로, 숫자형 배열로 지정됩니다.
데이터형: single
| double
복소수 지원 여부: 예
dim
— 연산을 수행할 차원
양의 정수 스칼라
연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트는 크기가 1이 아닌 첫 번째 배열 차원입니다.
두 개의 2차원 입력 배열 A
와 B
가 있다고 가정하겠습니다.
dot(A,B,1)
은A
와B
의 열을 벡터로 처리하여 해당 열의 내적을 반환합니다.dot(A,B,2)
는A
와B
의 행을 벡터로 처리하여 해당 행의 내적을 반환합니다.
dim
이 ndims(A)
보다 큰 경우 dot
은 conj(A).*B
를 반환합니다.
세부 정보
스칼라 내적
길이가 n인 두 실수 벡터의 스칼라 내적은 다음과 같습니다.
이 관계는 실수 벡터에 대해 가환성(Commutative)이 성립하므로 dot(u,v)
는 dot(v,u)
와 같습니다. 내적이 0일 경우 u와 v는 서로 수직 관계입니다.
복소수 벡터의 경우 내적을 구하려면 켤레 복소수가 필요합니다. 이 결과 한 개 벡터로 내적을 구하면 양의 정부호이며 실수인 것을 알 수 있습니다.
실수 벡터간 관계와 달리 복소수 벡터간 관계는 가환성(Commutative)이 성립하지 않으므로 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)
과 같습니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
이 함수는 tall형 배열을 지원하지만 다음과 같은 제한 사항이 있습니다.
구문 dot(A,B)
의 경우, 배열 A
와 배열 B
는 크기가 동일해야 합니다(벡터인 경우에도 해당됨).
자세한 내용은 메모리에 담을 수 없는 큰 데이터를 위한 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성 시 이 함수에 대해 희소 행렬 입력값은 지원되지 않습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
dot
함수는 GPU 배열을 완전히 지원합니다. GPU에서 이 함수를 실행하려면 입력 데이터를 gpuArray
(Parallel Computing Toolbox)로 지정하십시오. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
cross
| sum
| conj
| norm
| tensorprod
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)