# randn (RandStream)

Normally distributed pseudorandom numbers

## Syntax

```r = randn(s,m,n) r = randn(s,[m,n]) r = randn(s,m,n,p,...) r = randn(s,[m,n,p,...]) r = randn(s) r = randn(s,size(A)) r = randn(...,'double') r = randn(...,'single') ```

## Description

`r = randn(s,n)` returns an `n`-by-`n` matrix containing pseudorandom values drawn from the standard normal distribution. `randn` draws those values from the random stream s.

`r = randn(s,m,n)` or `r = randn(s,[m,n])` returns an `m`-by-`n` matrix.

`r = randn(s,m,n,p,...)` or ```r = randn(s,[m,n,p,...])``` returns an `m`-by-`n`-by-`p`-by-... array.

`r = randn(s)` returns a scalar.

`r = randn(s,size(A))` returns an array the same size as `A`.

`r = randn(...,'double')` or ```r = randn(...,'single')``` returns an array of uniform values of the specified class.

### Note

The size inputs `m`, `n`, `p`, ... should be nonnegative integers. Negative integers are treated as 0.

The sequence of numbers produced by `randn` is determined by the internal state of the random stream `s`. `randn` uses one or more uniform values from `s` to generate each normal value. Resetting that stream to the same fixed state allows computations to be repeated. Setting the stream to different states leads to unique computations, however, it does not improve any statistical properties.