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$– Martin SleziakJul 20, 2011 at 6:37
-
$\begingroup$ Also related: tex.stackexchange.com/questions/19180/… $\endgroup$– AlbertMar 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$– DmytroDec 6, 2017 at 17:47
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.
-
$\begingroup$ Example 1: Last sentence in page 29 here: columbia.edu/~nsa2106/Aybat_Paper4_FALC.pdf $\endgroup$ Jul 20, 2011 at 6:33
-
$\begingroup$ Example 2: The sentence above Equation (8) here: uow.edu.au/~mwand/publicns/Gangu07.pdf $\endgroup$ Jul 20, 2011 at 6:38
-
$\begingroup$ Example 3: Line 10 on page 14 here stanford.edu/~tsachy/pdf_files/…. $\endgroup$ Jul 20, 2011 at 6:43
-
$\begingroup$ Example 4: Last sentence on page 16 here: alphard.ethz.ch/Hafner/Workshop/Sandfort2010.pdf $\endgroup$ Jul 20, 2011 at 6:47
-
9$\begingroup$ For latex users, the command for the symbol is
\odot
. $\endgroup$– npitAug 21, 2018 at 21:17
- 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$.