48
$\begingroup$

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}$

  • 0
    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.2017-12-06

4 Answers 4

45

(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.

  • 3
    For latex users, the command for the symbol is `\odot`.2018-08-21
15
  • 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.
12

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.

  • 3
    Additionally, $\otimes$ is also often used for the Kronecker product, so using that to denote the Hadamard product would be quite the symbol overload...2011-07-20
8

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$.