Main Content

# unifrnd

Continuous uniform random numbers

## Syntax

``r = unifrnd(a,b)``
``r = unifrnd(a,b,sz1,...,szN)``
``r = unifrnd(a,b,sz)``

## Description

example

````r = unifrnd(a,b)` generates a random number from the continuous uniform distribution with the lower endpoints `a` and upper endpoint `b`.```

example

````r = unifrnd(a,b,sz1,...,szN)` generates an array of uniform random numbers, where `sz1,...,szN` indicates the size of each dimension.```

example

````r = unifrnd(a,b,sz)` generates an array of uniform random numbers, where the size vector `sz` specifies `size(r)`.```

## Examples

collapse all

Generate a random number from the continuous uniform distribution with the lower parameter `0` and upper parameter `1`.

`r = unifrnd(0,1)`
```r = 0.8147 ```

Generate `5` random numbers from the continuous uniform distributions on the intervals (0,1), (0,2),..., (0,5).

```a1 = 0; b1 = 1:5; r1 = unifrnd(a1,b1)```
```r1 = 1×5 0.8147 1.8116 0.3810 3.6535 3.1618 ```

By default, `unifrnd` generates an array that is the same size as `a` and `b` after any necessary scalar expansion so that all scalars are expanded to match the dimensions of the other inputs.

If you specify array dimensions `sz1,...,szN`, they must match the dimensions of `a` and `b` after any necessary scalar expansion.

Generate a 2-by-3 array of random numbers from the continuous uniform distribution with the lower parameter `0` and upper parameter `1`.

```sz = [2 3]; r2 = unifrnd(0,1,sz)```
```r2 = 2×3 0.0975 0.5469 0.9649 0.2785 0.9575 0.1576 ```

Generate 6 random numbers on the intervals (0,1), (1,2),..., (5,6).

```a3 = 0:5; b3 = 1:6; r3 = unifrnd(a3,b3,1,6)```
```r3 = 1×6 0.9706 1.9572 2.4854 3.8003 4.1419 5.4218 ```

## Input Arguments

collapse all

Lower endpoint of the uniform distribution, specified as a scalar value or an array of scalar values.

To generate random numbers from multiple distributions, specify `a` and `b` using arrays. If both `a` and `b` are arrays, then the array sizes must be the same. If either `a` or `b` is a scalar, then `unifrnd` expands the scalar argument into a constant array of the same size as the other argument. Each element in `r` is the random number generated from the distribution specified by the corresponding elements in `a` and `b`.

Example: `[0 -1 7 9]`

Data Types: `single` | `double`

Upper endpoint of the uniform distribution, specified as a scalar value or an array of scalar values.

To generate random numbers from multiple distributions, specify `a` and `b` using arrays. If both `a` and `b` are arrays, then the array sizes must be the same. If either `a` or `b` is a scalar, then `unifrnd` expands the scalar argument into a constant array of the same size as the other argument. Each element in `r` is the random number generated from the distribution specified by the corresponding elements in `a` and `b`.

Example: `[1 1 10 10]`

Data Types: `single` | `double`

Size of each dimension, specified as separate arguments of integers.

If either `a` or `b` is an array, then the specified dimensions `sz1,...,szN` must match the common dimensions of `a` and `b` after any necessary scalar expansion. The default values of `sz1,...,szN` are the common dimensions.

• If you specify a single value `sz1`, then `r` is a square matrix of size `sz1`-by-`sz1`.

• If the size of any dimension is `0` or negative, then `r` is an empty array.

• Beyond the second dimension, `unifrnd` ignores trailing dimensions with a size of 1. For example, `unifrnd``(–3,5,3,1,1,1)` produces a 3-by-1 vector of random numbers from the uniform distribution with lower endpoint –3 and upper endpoint 5.

Example: `2,3`

Data Types: `single` | `double`

Size of each dimension, specified as a row vector of integers.

If either `a` or `b` is an array, then the specified dimensions `sz` must match the common dimensions of `a` and `b` after any necessary scalar expansion. The default values of `sz` are the common dimensions.

• If you specify a single value [`sz1`], then `r` is a square matrix of size `sz1`-by-`sz1`.

• If the size of any dimension is `0` or negative, then `r` is an empty array.

• Beyond the second dimension, `unifrnd` ignores trailing dimensions with a size of 1. For example, `unifrnd``(–3,5,[3 1 1 1])` produces a 3-by-1 vector of random numbers from the uniform distribution with lower endpoint –3 and upper endpoint 5.

Example: `[2 3]`

Data Types: `single` | `double`

## Output Arguments

collapse all

Uniform random numbers, returned as a scalar value or an array of scalar values with the dimensions specified by `sz1,...,szN` or `sz`. Each element in `r` is the random number generated from the distribution specified by the corresponding elements in `a` and `b`.

## Alternative Functionality

• `unifrnd` is a function specific to the continuous uniform distribution. Statistics and Machine Learning Toolbox™ also offers the generic function `random`, which supports various probability distributions. To use `random`, create a `UniformDistribution` probability distribution object and pass the object as an input argument or specify the probability distribution name and its parameters. Note that the distribution-specific function `unifrnd` is faster than the generic function `random`.

• Use `rand` to generate numbers from the uniform distribution on the interval (0,1).

• To generate random numbers interactively, use `randtool`, a user interface for random number generation.

## Version History

Introduced before R2006a