I noticed that for any vectors $\mathbf{a},\mathbf{b},\mathbf{c}$ where $\mathbf{a},\mathbf{b}\in \mathbb{R}^{m\times 1}$ and $\mathbf{c}\in \mathbb{R}^{n\times 1}$, there exists the equality that


$$\mathbf{a}^\top \mathbf{b} \mathbf{c}=\mathbf{c}\mathbf{b}^\top \mathbf{a}$$


I can prove it as follows,


Denote the left side as vector $\mathbf{l}=\mathbf{a}^\top \mathbf{b} \mathbf{c}$ and the right side $\mathbf{r}=\mathbf{c}\mathbf{b}^\top \mathbf{a}$, then


$$l\_j=\left(\sum\_{i=1}^m{a\_i b\_i}\right)c\_j$$


and


$$r\_j=\sum\_ {i=1}^m{c\_j b\_i a\_i}$$


Since $l\_j=r\_j$, hence it is proved.


It's an element-based proof. I was wondering if there is any other method that can prove it very simply and if this equality is an existing property of vector operations?



Proving equality of a vector multiplication example
$\mathbf{a}^\top \mathbf{b}$ is a scalar, so $\mathbf{a}^\top \mathbf{b} = (\mathbf{a}^\top \mathbf{b})^\top = \mathbf{b}^\top \mathbf{a}$ and the term can be moved to the other side of $\mathbf{c}$ (again because it's a scalar). 


General remark: the second product in your LHS is a scalar-vector multiplication, which is a tricky thing to handle in these chains of computations because it is not associative. I suggest you to try to get the habit to write $\text{vector} \cdot \text{scalar}$ rather than $\text{scalar} \cdot \text{vector}$ if you can, because that's associative.


