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}$
Symbol for elementwise multiplication of vectors
-
0since 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
(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.
-
3For latex users, the command for the symbol is `\odot`. – 2018-08-21
- 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.
-
3Additionally, $\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
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$.