The low rank matrix \(L\) is generated by \(L = UV\), where
\(U\) is an \(n\)-by-\(rank\) matrix and
\(V\) is a \(rank\)-by-\(p\) matrix.
Each element in \(U\) (or \(V\)) are i.i.d. drawn from \(N(0, 1/n)\).
The sparse matrix \(S\) is an \(n\)-by-\(rank\) matrix.
It is generated by choosing a support set of size
support.size
uniformly at random.
The non-zero entries in \(S\) are independent Bernoulli (-1, +1) entries.
The noise matrix \(N\) is an \(n\)-by-\(rank\) matrix,
the elements in \(N\) are i.i.d. gaussian random variable
with standard deviation \(\sigma\).
The SNR is defined as
as the variance of vectorized matrix \(L + S\) divided
by \(\sigma^2\).
The matrix \(x\) is the superposition of \(L\), \(S\), \(N\):
$$x = L + S + N.$$