This is a notation question. Assume one is given two vector $\mathbf{a}$ and $\mathbf{b}$, and one constructs a third vector $\mathbf{c}$ whose elements are given by $$c_k=a_k b_k$$ Is there any standard notation for this simple operation? Is the notation below acceptable? $$\mathbf{c}=\mathbf{a}\otimes \mathbf{b}$$

  • 3
    $\begingroup$ Related questions: math.stackexchange.com/questions/20412/… and math.stackexchange.com/questions/32516/… $\endgroup$ Jul 20, 2011 at 6:37
  • $\begingroup$ Also related: tex.stackexchange.com/questions/19180/… $\endgroup$
    – Albert
    Mar 3, 2016 at 13:56
  • $\begingroup$ since vector multiplication is overloaded quite a lot as is, you can't trust that any arbitrary reader will understand your notation; to avoid this problem, use any symbol you want as long as you leave a "let () denote pairwise multiplication of vectors" before using it or "where () denotes pairwise multiplication" after using it, and make sure that you only use this operator in this way in the context of (*) :: vector -> vector -> vector. $\endgroup$
    – Dmitry
    Dec 6, 2017 at 17:47

4 Answers 4


(Minor edits.)

It turns out that the symbol $\odot$ is often used to denote component-wise multiplication (a few examples are given in the comments below); $\circ$ and $*$ are common alternatives.

  • Wikipedia uses $\circ$ (\circ) to denote the Hadamard product (which is the operation you describe)
  • This answer makes a good case for $\odot$ (\odot) being used instead.

No, I would be concerned about $\otimes$ causing confusion with the outer product (although the outer product will produce a matrix, and the componentwise product will produce a vector, so if the context is clear enough perhaps this will not be a problem).

I recommend writing componentwise multiplication of vectors using some symbol that does not have a standard meaning, perhaps $\star$ (\star) or $\diamond$ (\diamond), so that people reading won't have any preconceptions about what might be meant.

  • 4
    $\begingroup$ Additionally, $\otimes$ is also often used for the Kronecker product, so using that to denote the Hadamard product would be quite the symbol overload... $\endgroup$ Jul 20, 2011 at 11:16

If I ever needed to perform a Hadamard product of two vectors $\mathbf a$ and $\mathbf b$, apart from the usual MATLAB notation (as mentioned in the first linked question in the comments), I'd probably use $\mathrm{diag}(\mathbf a)\cdot\mathbf b$, where $\mathrm{diag}(\mathbf a)$ is the diagonal matrix with diagonal entries $a_k$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.