Vector creation, array subscripting, and for
-loop
iteration
x = j:k x = j:i:k A(:,n) A(m,:) A(:) A(j:k)
The colon is one of the most useful operators in MATLAB®.
It can create vectors, subscript arrays, and specify for
iterations.
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