Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

# rng

Control random number generation

## Syntax

``rng(seed)``
``rng('shuffle')``
``rng(seed, generator)``
``````rng('shuffle', generator)``````
``rng('default')``
``scurr = rng``
``rng(s)``
``sprev = rng(...)``

## Description

### Note

To use the `rng` function instead of `rand` or `randn` with the `'seed'`, `'state'`, or `'twister'` inputs, see the documentation on Replace Discouraged Syntaxes of rand and randn.

````rng(seed)` seeds the random number generator using the nonnegative integer `seed` so that `rand`, `randi`, and `randn` produce a predictable sequence of numbers.```
````rng('shuffle')` seeds the random number generator based on the current time. Thus, `rand`, `randi`, and `randn` produce a different sequence of numbers after each time you call `rng`.```
````rng(seed, generator)` and ```rng('shuffle', generator)``` additionally specify the type of the random number generator used by `rand`, `randi`, and `randn`. The `generator` input is one of: `'twister'`: Mersenne Twister`'simdTwister'`: SIMD-oriented Fast Mersenne Twister`'combRecursive'`: Combined Multiple Recursive`'philox'`: Philox 4x32 generator with 10 rounds`'threefry'`: Threefry 4x64 generator with 20 rounds`'multFibonacci'`: Multiplicative Lagged Fibonacci`'v5uniform'`: Legacy MATLAB® 5.0 uniform generator`'v5normal'`: Legacy MATLAB 5.0 normal generator`'v4'`: Legacy MATLAB 4.0 generator```
````rng('default')` puts the settings of the random number generator used by `rand`, `randi`, and `randn` to their default values. This way, the same random numbers are produced as if you restarted MATLAB. The default settings are the Mersenne Twister with seed 0.```
````scurr = rng` returns the current settings of the random number generator used by `rand`, `randi`, and `randn`. The settings are returned in a structure `scurr` with fields '`Type`', '`Seed`', and '`State`'. ```
````rng(s)` restores the settings of the random number generator used by `rand`, `randi`, and `randn` back to the values captured previously with a command such as `s = rng`.```
````sprev = rng(...)` returns the previous settings of the random number generator used by `rand`, `randi`, and `randn` before changing the settings.```

## Examples

### Example 1 — Retrieve and Restore Generator Settings

Save the current generator settings in `s`:

`s = rng;`

Call `rand` to generate a vector of random values:

```x = rand(1,5) x = 0.8147 0.9058 0.1270 0.9134 0.6324```

Restore the original generator settings by calling `rng`. Generate a new set of random values and verify that `x` and `y` are equal:

```rng(s); y = rand(1,5) y = 0.8147 0.9058 0.1270 0.9134 0.6324```

### Example 2 — Restore Settings for Legacy Generator

Use the legacy generator.

```sprev = rng(0,'v5uniform') sprev = Type: 'twister' Seed: 0 State: [625x1 uint32] x = rand x = 0.9501```

Restore the previous settings by calling `rng`:

`rng(sprev)`

Download ebook