# How to get rid of nested matrices

If I type into Mathematica

TensorProduct[IdentityMatrix[2],IdentityMatrix[2]]


It gives me a result that has nested matrices. How do I turn that into a normal matrix without any nesting? Thanks

-
Look at Flatten, Join, et al. ... –  ciao Jul 2 '14 at 2:32

Depends on what dimension your final matrix is supposed to have. When I should make a guess, I would say you want this

TensorProduct[IdentityMatrix[2], IdentityMatrix[2]] // ArrayFlatten


-

An alternative approach is to use KroneckerProduct which does not require flattening.

From the docs on TensorProduct:

The KroneckerProduct of matrices is equivalent to the flattening of their TensorProduct to another matrix.

That is, for any two matrices m1 and m2

KroneckerProduct[m1, m2] == ArrayFlatten[TensorProduct[m1, m2]]
(* True *)


So,

m1 = IdentityMatrix[2];
KroneckerProduct[m1, m1] == ArrayFlatten[TensorProduct[m1, m1]]
(* True *)

-