【收藏】各种乘法的区别 “点积、外积、数乘...等”

I've seen several conventions, including ⋅⋅, ∘∘, ∗∗, ⊗⊗, and ⊙⊙. However, most of these have overloaded meanings (see http://en.wikipedia.org/wiki/List_of_mathematical_symbols).

Thus, in my personal experience, the best choice I've found is:

  • ⊙(\odot) -- to me the dot makes it look naturally like a multiply operation (unlike other suggestions I've seen like ⋄⋄) so is relatively easy to visually parse, but does not have an overloaded meaning as far as I know.

Also:

  • This question comes up often in multi-dimensional signal processing, so I don't think just trying to avoid vector multiplies is an appropriate notation solution. One important example is when you map from discrete coordinates to continuous coordinates by x=i⊙Δ+bx=i⊙Δ+b where ii is an index vector, ΔΔ is sample spacing (say in mm), bb is an offset vector, and xx is spatial coordinates (in mm). If sampling is not isotropic, then ΔΔ is a vector and element-wise multiplication is a natural thing to want to do. While in the above example I could avoid the problem by writing xk=ikΔk+bkxk=ikΔk+bk, having a symbol for element-wise multiplication lets us mix and match matrix multiplies and elementwise multiplies, for example y=A(i⊙Δ)+by=A(i⊙Δ)+b.
  • Another alternative notation I've seen for z=x⊙yz=x⊙y for vectors is z=z= diag(x)y(x)y. While this technically works for vectors, I find the ⊙⊙ notation to be far more intuitive. Furthermore, the "diag" approach only works for vectors -- it doesn't work for the Hadamard product of two matrices.
  • Often I have to play nicely with documents that other people have written, so changing the overloaded operator (like changing dot products to 〈⋅,⋅〉〈⋅,⋅〉 notation) often isn't an option, unfortunately.

Thus I recommend ⊙, as it is the only option I have yet to come across that has seems to have no immediate drawbacks.

发布了103 篇原创文章 · 获赞 399 · 访问量 139万+

猜你喜欢

转载自blog.csdn.net/jdbc/article/details/82753391
今日推荐