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?

  • $\begingroup$ Is there any particular reason you want to do this using matrix products? $\endgroup$ – Ben Grossmann Nov 21 '14 at 19:18
  • $\begingroup$ 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. $\endgroup$ – 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$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.