Matlab – Dot Product Over Complex Vectors: Conjugate First or Second?

inner-productsMATLAB

Does there exist a truly "standard" dot product over complex vectors?

Wikipedia and Wolfram's MathWorld indicate directly or indirectly that
the second argument is conjugated.

Matlab's dot product is the opposite. "When A and B are both column vectors, dot(A,B) is the same as A'*B." This has attractiveness from the perspective that it is more consistent with the vector definition for real numbers. I.e., if dot conjugated the second argument it would be B'*A

I am confused about whether there is a "standard" approach. Did Matlab just go rogue on this one? Or were others before them using a dot product that implied linearity in the second argument?

This ambiguity seems more dangerous and error-prone than a simple notational preference. E.g., how mathematicians use "i" to represent the square root of negative one, vs. engineers who use "j".

Best Answer

If we consider column vectors in $\mathbb{C}^n$, it's more natural to define the standard inner product by $$ \langle\mathbf{x}\mid\mathbf{y}\rangle = \mathbf{x}^H\mathbf{y} $$ rather than $\mathbf{y}^H\mathbf{x}$ ($H$ denotes the conjugate transpose, notation for the inner product varies among authors), so it's “naturally” antilinear in the first variable and linear in the second.

If one identifies coordinate vectors with rows (writing maps on the right), then the “natural” way becomes the opposite.

It's just a convention; just learn how to translate from one to the other.