# Creating a matrix out of a column vector by matrix multiplication

Is there a way to transform a $(n*n) \times 1$ column vector into a $n \times n$ matrix that contains the entries of the vector in its columns using matrix products?

Example: I want to transform vector $\mathbf{x}$ into matrix $\mathbf{X}$, where:

$$\mathbf{x} = \begin{pmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \end{pmatrix}, \quad \mathbf{X} = \begin{pmatrix} x_1 & x_3 \\ x_2 & x_4 \end{pmatrix}$$

For that I need to find some transformation matrices $\mathbf{A}$ and $\mathbf{B}$ so that

$$\mathbf{A} \mathbf{x} \mathbf{B}=\mathbf{X}$$

I am not sure if this is even possile. Does anyone know how to achieve this or have an explaination why it does not work?

• Is there any particular reason you want to do this using matrix products? – Omnomnomnom Nov 21 '14 at 19:18
• Yes, the reason is that this is part of a finite element simulation I'm implementing. I have a column vector of particle positions for every tetrahedron and need to get a matrix which contains three of its edge vectors as columns. I wanted to do as much work as possible in a preprocessing step and premultiply most of the matrices I need in the calculation. The above transformation is part of the precalculation. – maddin45 Nov 21 '14 at 19:45

Here is an argument that there can be no such matrices $A,B$ when $n>1:$
We may select $x_1,\dots,x_{n^2}$ so that the resulting matrix $X$ has rank $n$. Note that $A$ must have dimensions $n \times n^2$, and $B$ must have dimensions $1 \times n$.
Thus, $B$ is a matrix with rank at most $1$, so rank$(AxB) \leq 1$. So, $AxB \neq X$.