---
layout: default
---
Function range #
Create a matrix or array containing a range of values.
By default, the range end is excluded. This can be customized by providing
an extra parameter `includeEnd`.
Syntax #
```js
math.range(str [, includeEnd]) // Create a range from a string,
// where the string contains the
// start, optional step, and end,
// separated by a colon.
math.range(start, end [, includeEnd]) // Create a range with start and
// end and a step size of 1.
math.range(start, end, step [, includeEnd]) // Create a range with start, step,
// and end.
```
Where #
- `str: string`
A string 'start:end' or 'start:step:end'
- `start: {number | bigint | BigNumber | Fraction | Unit}`
Start of the range
- `end: number | bigint | BigNumber | Fraction | Unit`
End of the range, excluded by default, included when parameter includeEnd=true
- `step: number | bigint | BigNumber | Fraction | Unit`
Step size. Default value is 1.
- `includeEnd: boolean`
Option to specify whether to include the end or not. False by default.
Parameters #
Parameter | Type | Description
--------- | ---- | -----------
`args` | * | Parameters describing the range's `start`, `end`, and optional `step`.
Returns #
Type | Description
---- | -----------
Array | Matrix | range
Throws #
Type | Description
---- | -----------
Examples #
```js
math.range(2, 6) // [2, 3, 4, 5]
math.range(2, -3, -1) // [2, 1, 0, -1, -2]
math.range('2:1:6') // [2, 3, 4, 5]
math.range(2, 6, true) // [2, 3, 4, 5, 6]
math.range(2, math.fraction(8,3), math.fraction(1,3)) // [fraction(2), fraction(7,3)]
math.range(math.unit(2, 'm'), math.unit(-3, 'm'), math.unit(-1, 'm')) // [2 m, 1 m, 0 m , -1 m, -2 m]
```
See also #
[ones](ones.html),
[zeros](zeros.html),
[size](size.html),
[subset](subset.html)