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

$\endgroup$
  • 3
    $\begingroup$ Related questions: math.stackexchange.com/questions/20412/… and math.stackexchange.com/questions/32516/… $\endgroup$ – Martin Sleziak Jul 20 '11 at 6:37
  • $\begingroup$ Also related: tex.stackexchange.com/questions/19180/… $\endgroup$ – Albert Mar 3 '16 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 '17 at 17:47
39
$\begingroup$

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

$\endgroup$
12
$\begingroup$

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.

$\endgroup$
  • 3
    $\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$ – J. M. is not a mathematician Jul 20 '11 at 11:16
11
$\begingroup$
  • 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.
$\endgroup$
8
$\begingroup$

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

$\endgroup$

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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