tensorprod

Produto tensorial e contração de arrays ao longo de dimensões escolhidas.

Categoria: Language Fundamentals > Operators and Elementary Operations

Sintaxe

C = tensorprod(A, B)

Produto externo (tensorial): cada elemento de A vezes cada elemento de B. O resultado tem ndims(A) + ndims(B) dimensões.

C = tensorprod(A, B, dimA, dimB)

Contrai: multiplica e soma sobre a dimensão dimA de A e dimB de B.

C = tensorprod(A, B, 'all')

Contrai em todas as dimensões, o que dá o produto interno completo como escalar.

Descrição

Sem dimensões de contração, tensorprod faz o produto externo, e dois vetores de comprimento 3 e 3 dão um resultado de tamanho 1x3x1x3. Contrair um par de dimensões generaliza a multiplicação de matrizes: tensorprod(A, B, 2, 1) é igual a A*B para matrizes. Contrair [1 2] com [1 2] soma os produtos de todos os elementos correspondentes.

É a ferramenta geral por trás de produtos escalares, produtos de matrizes e contrações no estilo da soma de Einstein.

Argumentos de entrada

A, B
Arrays numéricos.
dimA, dimB
Dimensões a contrair. Devem ter tamanhos iguais em A e B e o mesmo número de entradas.

Argumentos de saída

C
O resultado. As dimensões restantes de A vêm primeiro, seguidas das de B.

Exemplo

a = [1 2 3];
b = [4 5 6];
size(tensorprod(a, b))
tensorprod(a, b, 'all')
A = [1 2; 3 4];
tensorprod(A, A, 2, 1)
Saída
ans = 1×4

     1     3     1     3
ans = 32
ans = 2×2

     7    10
    15    22

Veja também

pagemtimes kron dot mtimes permute