SPRANDN Sparse Normal Random Matrix
Section: Sparse Matrix Support
Usage
Creates a sparse matrix with normally distributed random entries (mean 0, sigma 1). The syntax for its use isy = sprandn(x)
where x
is a sparse matrix, where y
is a sparse matrix that has
random entries where x
is nonzero. The second form specifies the
size of the matrix and the density
y = sprandn(m,n,density)
where m
is the number of rows in the output, n
is the number of
columns in the output, and density
(which is between 0 and 1) is
the density of nonzeros in the resulting matrix. Note that for very
high densities the actual density of the output matrix may differ from
the density you specify. This difference is a result of the way the
random entries into the matrix are generated. If you need a very dense
random matrix, it is better to generate a full matrix and zero out the
entries you do not need.
Examples
Here we seedsprandn
with a full matrix (to demonstrate how the structure
of the output is determined by the input matrix when using the first form).
--> x = [1,0,0;0,0,1;1,0,0] x = 1 0 0 0 0 1 1 0 0 --> y = sprandn(x) y = 1 1 0.770419 3 1 0.332694 2 3 -0.589851 --> full(y) ans = 0.7704 0 0 0 0 -0.5899 0.3327 0 0
The more generic version with a density of 0.001
. On many systems the
following is impossible using full matrices
--> y = sprandn(10000,10000,.001); --> nnz(y)/10000^2 ans = 9.9953e-04