Commutation matrix

In mathematics, especially in linear algebra and matrix theory, the commutation matrix is used for transforming the vectorized form of a matrix into the vectorized form of its transpose. Specifically, the commutation matrix K("m","n") is the "nm" × "mn" matrix which, for any "m" × "n" matrix A, transforms vec(A) into vec(AT):
Here vec(A) is the "mn" × 1 column vector obtain by stacking the columns of A on top of one another:
where A = [A"i","j"].
The commutation matrix is a special type of permutation matrix, and is therefore orthogonal. Replacing A with AT in the definition of the commutation matrix shows that Therefore in the special case of "m" = "n" the commutation matrix is an involution and symmetric.
The main use of the commutation matrix, and the source of its name, is to commute the Kronecker product: for every "m" × "n" matrix A and every "r" × "q" matrix B,
It is much used in developing the higher order statistics of Wishart covariance matrices.
An explicit form for the commutation matrix is as follows: if e"r","j" denotes the "j"-th canonical vector of dimension "r" (i.e. the vector with 1 in the "j"-th coordinate and 0 elsewhere) then 
Example.
Let "M" be a 2×2 square matrix.
Then we have
And K(2,2) is the 4×4 square matrix that will transform vec("M") into vec("M"T)
For both square and rectangular matrices of codice_1 rows and codice_2 columns, the commutation matrix can be generated by this pseudocode, which is similar to an article at Stack Exchange and demonstrably gives the correct result though is presented without proof.
 for i = 1 to m
 for j = 1 to n
 K(i + m*(j - 1), j + n*(i - 1)) = 1
 end
 end
Thus the following formula_7 matrix formula_8 has two possible vectorizations as follows:
and the code above yields
giving the expected results