C = tensorprod(___,NumDimensionsA=ndimsA)는 이전 구문에 나와 있는 입력 인수 조합 중 하나와 더불어 텐서 A의 차원 개수를 선택적으로 지정합니다. 출력값으로 전달해야 하는 후행 한원소 차원이 A에 있는 경우 이 옵션을 사용하십시오. 예를 들어, tensorprod(A,B,NumDimensionsA=4)는 텐서 A와 B 간의 외적을 계산하며, 여기서 A는 총 4개의 차원을 갖습니다.
두 텐서의 내적은 dot에 의해 계산되는 벡터의 내적 연산을 일반화한 것입니다. 내적 연산(곱셈 후 덧셈)은 텐서의 모든 대응하는 차원에서 수행되므로 이 연산은 스칼라 값을 반환합니다. 이 연산을 수행하려면 텐서의 크기가 같아야 합니다.
예를 들어, 텐서 U와 V가 동일한 n개의 차원 (i, j, k, ..., n)을 가지는 경우 내적 tensorprod(U,V,"all")은 다음과 같은 합으로 지정됩니다.
텐서의 외적은 kron에 의해 계산되는 2차원 행렬의 크로네커 곱을 일반화한 것입니다. 두 텐서의 외적은 텐서의 요소의 모든 조합을 곱한 것입니다. 텐서의 차원이 축약되지 않기 때문에 출력값은 큰 텐서가 됩니다.
예를 들어, 텐서 U의 차원이 (i, j, k, ...)이고 텐서 V의 차원이 (l, m, n, ...)인 경우 외적 tensorprod(U,V)는 다음과 같이 지정됩니다.
텐서 곱은 내적과 외적 연산을 결합한 것입니다. 각 텐서에서 동일한 크기의 차원 쌍을 지정하여 내적을 통해 서로 축약되도록 할 수 있으며, 이러한 차원을 곱한 다음 더하여 차원 크기를 1로 줄입니다. 지정된 모든 차원이 축약된 후, 나머지 차원에 대해 텐서의 요소의 모든 조합을 곱하는 외적 연산이 수행됩니다.
예를 들어 텐서 U는 차원 (i, j, k)를 갖고 텐서 V는 차원 (i, j, m)을 갖는 경우 텐서 곱 tensorprod(U,V,[1 2])는 각 텐서의 처음 두 차원을 서로 축약하며, 결과는 차원 (k, m)을 갖습니다.
tensorprod 함수는 GPU 배열을 완전히 지원합니다. GPU에서 이 함수를 실행하려면 입력 데이터를 gpuArray (Parallel Computing Toolbox)로 지정하십시오. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.