2
$\begingroup$

Is there a way of expressing the following expression using only matrix products ?

$(A \circ B ) (A \circ B)^H $

$\circ$ is the Hadamard product and $.^H$ is the conjugate-transpose operator.

$A$ and $B$ are matrices in $\mathbb{C}^{m \times n}$.

  • 2
    The Hadamard product is a principal submatrix of the Kronecker product if that is allowed.2017-01-03
  • 1
    Otherwise you could for example vectorize A and B, make diagonal matrices of them, multiply and express the conjugate-transpose as a matrix operator (will be a permutation matrix).2017-01-03
  • 0
    Thanks, I'll take a look at your second idea and see what I can do. I'll let you know.2017-01-03
  • 0
    So it seems that: $diag(vec( A \circ B)) = diag(vec(A))\ diag(vec(B))$ To make the notation less cluttered, let's define $D_x = diag(vec(x))$, giving: $D_{ A \circ B} = D_A\ D_B = D_B\ D_A$.2017-01-03
  • 1
    Yes, and then the only thing left is to find a matrix that does a conjugate transpose on a vector and you can express what you want. You may need to find a suitable matrix representation of complex numbers to do that.2017-01-03
  • 1
    You also have that ${\rm vec}(A \circ B) = {\rm diag}\{{\rm vec}\{A\}\} \cdot {\rm vec}\{B\} = {\rm diag}\{{\rm vec}\{B\}\} \cdot {\rm vec}\{A\}$. The trouble is that you need the matrix product between the Schur products so you'd have to "undo" the vec or diag. That's not that easy to write nicely. Btw: the trace of your expression is more easy to write since ${\rm trace}\{(A \circ B)(A \circ B)^H\} = {\rm vec}\{B\}^H \cdot {\rm diag}\{{\rm vec}\{A\}\} \cdot {\rm diag}\{{\rm vec}\{A\}\}^H \cdot {\rm vec}\{B\}$.2017-01-03
  • 0
    This last expression is very interesting but I'll loose information, the trace should only give me a clue about the sum of the eigen values of what I'm looking for. Anyway, very interesting talk, I'll keep digging and let you know what I find.2017-01-03
  • 0
    I have already faced a similar problem recently, trying to undo a vec but it seems that it's not possible with a simple matrix operation since $vec(A \circ B) \in \mathbb{C}^{1 \times mn}$ but $A \circ B \in \mathbb{C}^{m \times n}$. These two matrices would have to share at least one dimension.2017-01-03

1 Answers 1

1

According to the comments the only ugly part was the devectorization.

Consider the 3x3 matrix $${\bf X}=\left[\begin{array}{ccc} 1&2&3\\4&5&6\\7&8&9\end{array}\right]$$

It's lexical vectorization is:

$$\text{vec}({\bf X}) = \left[\begin{array}{ccccccccc}1&4&7&2&5&8&3&6&9\end{array}\right]^T$$

We consider that kind of vectorization here.

The Matlab / Octave expression:

kron([1,0,0]',eye(3))'*kron(R(:),[1,0,0])+
kron([0,1,0]',eye(3))'*kron(R(:),[0,1,0])+
kron([0,0,1]',eye(3))'*kron(R(:),[0,0,1])-R

evaluates to the zero matrix for several random matrices R, each new term "selecting" a new row.

Then a guess would be that $${\bf R}=\sum_k({\bf v_k} \otimes {\bf I})^T(\text{vec}({\bf R})\otimes {\bf v_k}^T)$$ With $\bf v_k$ being the Dirac or selector vector: $$({\bf v_k})_i = \cases{0, k \neq i\\1, k=i}$$

Feel free to try and simplify it if you want.