Would it help for you to think of a matrix as a "big vector"? To see what I mean, if your matrix has components a_{ij}$a_{ij}$, then you could write A = sum_{i,j} a_{i,j} E_{ij}$A = \sum_{i,j} a_{i,j} E_{ij}$, where E_{ij}$E_{ij}$ is a matrix which has all entries as zeros, except having a unity at position (i,j)$(i,j)$. Then your matrix space can be identified with a real Euclidean space R^{nn}, where your matrix A would have its counterpart, call it a = (a_{11}, ..., a_{1n}, a_{21}, ..., a_{nn}). In effect, you are just "stacking" rows/columns of the matrix on top of each other. The transposition operator would then be a linear operator T: R^{nn} -> R^{n*n}$R^{n\times n}$, where your matrix $A$ would have its counterpart, call it $a = (a_{11}, ..., a_{1n}, a_{21}, ..., a_{nn})$. In effect, you are just "stacking" rows/columns of the matrix on top of each other. The transposition operator would then be a linear operator $T: \mathbb R^{n\times n} \to \mathbb{R}^{n\times n}$, i.e., a matrix with n^4$n^4$ entries, and it would be a permutation matrix. Then you could transpose your original matrix by passing through this representation as A -> a -> Ta -> A^T$A \to a \to Ta \to A^T$. The switch from the first (A) to the second representation (a), and back, could be done via the "reshape" command in Matlab.