MATLAB Function Reference
rand

Uniformly distributed random numbers and arrays

Syntax

• ```Y = rand(n)
Y = rand(m,n)
Y = rand([m n])
Y = rand(m,n,p,...)
Y = rand([m n p...])
Y = rand(size(A))
rand
s = rand('state')
```

Description

The `rand` function generates arrays of random numbers whose elements are uniformly distributed in the interval (`0`,`1`).

```Y = rand(n) ``` returns an `n`-by-`n` matrix of random entries. An error message appears if `n` is not a scalar.

```Y = rand(m,n) or Y = rand([m n]) ``` returns an `m`-by-`n` matrix of random entries.

```Y = rand(m,n,p,...) or Y = rand([m n p...]) ``` generates random arrays.

```Y = rand(size(A)) ``` returns an array of random entries that is the same size as `A`.

```rand, ``` by itself, returns a scalar whose value changes each time it's referenced.

```s = rand('state') ``` returns a 35-element vector containing the current state of the uniform generator. To change the state of the generator:

 `rand('state',s)` Resets the state to `s`. `rand('state',0)` Resets the generator to its initial state. `rand('state',j)` For integer `j`, resets the generator to its `j`-th state. `rand('state',sum(100*clock))` Resets it to a different state each time.

Examples

Example 1. `R` `=` `rand(3,4)` may produce

• ``` R =
0.2190    0.6793    0.5194    0.0535
0.0470    0.9347    0.8310    0.5297
0.6789    0.3835    0.0346    0.6711
```

This code makes a random choice between two equally probable alternatives.

• ``` if rand < .5
else
'tails'
end
```

Example 2. Generate a uniform distribution of random numbers on a specified interval `[a,b]`. To do this, multiply the output of `rand` by `(b-a)` then add a. For example, to generate a 5-by-5 array of uniformly distributed random numbers on the interval `[10,50]`

• ```a = 10; b = 50;
x = a + (b-a) * rand(5)
x =

18.1106   10.6110   26.7460   43.5247   30.1125
17.9489   39.8714   43.8489   10.7856   38.3789
34.1517   27.8039   31.0061   37.2511   27.1557
20.8875   47.2726   18.1059   25.1792   22.1847
17.9526   28.6398   36.8855   43.2718   17.5861
```

`randn`, `randperm`, `sprand`, `sprandn`