# Sampling from matrix-normal distribution

I would like to sample from a matrix-Gaussian variable (not multivariate normal). so basically, let $X \in \mathbb{R}^{m\times n}$ be a random matrix distributed according to the matrix-normal law. Let it be zero mean. We can denote this distribution with, $${vec}(X) \sim \mathcal{N}(0,Q_1 \otimes Q_2)$$ where $vec$ is the vectorization operator, $0$ is the $m\times n$ all zero matrix. $\dim(Q_1) = n\times n$ and $\dim(Q_2) = m\times m$.

The obvious way to sample this in general of course is to sample this vectorized object and reshaping it. But this requires to compute this Kronecker product which can certainly be burdensome.

My problem: I would like to sample the matrix directly using $Q_1$ and $Q_2$ without computing the Kronecker product.

Any help is greatly appreciated!

P.S.: To obtain $X \sim \mathcal{N}(0, I \otimes I)$, you only need to generate $n$ independent $m$-variate normal random vectors, then stack them into an $n \times m$ matrix.