I believe that answer to this is that MATLAB treats single element arrays as a "scalar" value therefore .* and * are equivalent if either one of the components is scalar.
.* is an array operator (element-by-element operator). Now, if a=2 and x=[1 2], then why am I allowed to calculate a.*x? I mean, it is an element-by-element operator, so it should give me an error.
Furthermore, * is a matrix-operator (according to Support - Code Vectorization Guide). If that is the case, then why am I allowed to calculate the product x*a? Only a*x should be allowed.
I hope you will help me by shedding some light on this.