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.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Vector creation, array subscripting, and `for`

-loop
iteration

The colon is one of the most useful operators in MATLAB^{®}.
It can create vectors, subscript arrays, and specify `for`

iterations.

x = j:k x = j:i:k A(:,n) A(m,:) A(:) A(j:k)

creates
a regularly-spaced vector `x`

= `j`

:`i`

:`k`

`x`

using `i`

as
the increment between elements. The vector elements are roughly equal
to `[j,j+i,j+2*i,...,j+m*i]`

where `m = fix((k-j)/i)`

.
However, if `i`

is not an integer, then floating
point arithmetic plays a role in determining whether `colon`

includes
the endpoint `k`

in the vector, since `k`

might
not be *exactly* equal to `j+m*i`

.
If you specify nonscalar arrays, then MATLAB interprets `j:i:k`

as `j(1):i(1):k(1)`

.

`x = colon(j,k)`

and `x = colon(j,i,k)`

are
alternate ways to execute the commands `j:k`

and `j:i:k`

,
but are rarely used. These syntaxes enable operator overloading for
classes.

`A(:,n)`

, `A(m,:)`

, `A(:)`

,
and `A(j:k)`

are common indexing expressions for
a matrix `A`

that contain a colon. When you use a
colon as a subscript in an indexing expression, such as `A(:,n)`

,
it acts as shorthand to include *all* subscripts
in a particular array dimension. It is also common to create a vector
with a colon for the purposes of indexing, such as `A(j:k)`

.
Some indexing expressions combine both uses of the colon, as in `A(:,j:k)`

.

Common indexing expressions that contain a colon are:

`A(:,n)`

is the`n`

th column of matrix`A`

.`A(m,:)`

is the`m`

th row of matrix`A`

.`A(:,:,p)`

is the`p`

th page of three-dimensional array`A`

.`A(:)`

reshapes all elements of`A`

into a single column vector. This has no effect if`A`

is already a column vector.`A(:,:)`

reshapes all elements of`A`

into a two-dimensional matrix. This has no effect if`A`

is already a matrix or vector.`A(j:k)`

uses the vector`j:k`

to index into`A`

and is therefore equivalent to the vector`[A(j), A(j+1), ..., A(k)]`

.`A(:,j:k)`

includes all subscripts in the first dimension but uses the vector`j:k`

to index in the second dimension. This returns a matrix with columns`[A(:,j), A(:,j+1), ..., A(:,k)]`

.

The

`for`

reference page has a description of how to use`:`

in the context of loop statements.`linspace`

is similar to the colon operator`:`

, but it gives direct control over the number of points and always includes the endpoints. The sibling function`logspace`

generates logarithmically spaced values.When you create a vector to index into a cell array or structure array (such as

or{:}`cellName`

), MATLAB returns multiple outputs in a comma-separated list. For more information, see How to Use the Comma-Separated Lists.(:).`structName`

`fieldName`

Was this topic helpful?