Produto de Hadamard

De Augusto Baffa Wiki
Ir para navegação Ir para pesquisar

O produto de Hadamard (produto termo a termo) é uma operação binária que toma duas matrizes de mesma dimensão e produz outra matriz onde cada elemento i, j é o produto dos elementos i, j das duas matrizes originais. O produto de Hadamard é associativo, distributivo e comutativo (ao contrário do produto comum da matriz).

Definição

Para duas matrizes A, B da mesma dimensão m×n, o produto de hadamard AB é uma matriz da mesma dimensão dos operandos, com elementos dados por

(AB)i,j=(A)i,j(B)i,j.

Para matrizes de diferentes dimensões (m×n e p×q, onde mp ou nq ou ambos) o produto Hadamard é indefinido.

Exemplo

Por exemplo, o produto de hadamard para uma matriz 3 × 3 A com uma matriz 3 × 3 B é

[a11a12a13 a21a22a23 a31a32a33][b11b12b13 b21b22b23 b31b32b33]=[a11b11a12b12a13b13 a21b21a22b22a23b23 a31b31a32b32a33b33].

def HadamardProduct(m1, m2):
   mprod = []		
   for i in range(len(m1)):
      mprod[i] = []
      for j in range(len(m1[i])):
         mprod[i][j] = m1[i][j] * m2[i][j]
   return mprod

Veja Também