This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

colon, :

Create vectors, array subscripting, and for-loop iterators


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

The colon operator uses the following rules to create regularly spaced vectors for scalar values i, j, and k:


is the same as [j,j+1,j+2,...,j+m], where m = fix(k-j). In the case where both j and k are integers, this is simply [j,j+1,...,k]. This syntax returns an empty matrix when j > k.


is the same as [j,j+i,j+2i, ...,j+m*i], where m = fix((k-j)/i). This syntax returns an empty matrix when i == 0, i > 0 and j > k, or i < 0 and j < k.

If i, j, or k is an empty input, then the colon operator returns an empty 1-by-0 matrix. If you specify nonscalar arrays, MATLAB interprets j:i:k as j(1):i(1):k(1).

You can use the colon to create a vector of indices to select rows, columns, or elements of arrays, where:


is the jth column of A.


is the ith row of A.


is the equivalent two-dimensional array. For matrices this is the same as A.


is A(j), A(j+1),...,A(k).


is A(:,j), A(:,j+1),...,A(:,k).


is the kth page of three-dimensional array A.


is a vector in four-dimensional array A. The vector includes A(i,j,k,1), A(i,j,k,2), A(i,j,k,3), and so on.


is all the elements of A, regarded as a single column. On the left side of an assignment statement, A(:) fills A, preserving its shape from before. In this case, the right side must contain the same number of elements as A.

When you create a vector to index into a cell array or structure array (such as cellName{:} or structName(:).fieldName), MATLAB returns multiple outputs in a comma-separated list. For more information, see How to Use the Comma-Separated Lists in the MATLAB Programming Fundamentals documentation.


Using the colon with integers,

D = 1:4

results in

D =
    1    2    3    4

Using two colons to create a vector with arbitrary real increments between the elements,

E = 0:.1:.5

results in

E =
    0    0.1000    0.2000    0.3000    0.4000    0.5000

The command

A(:,:,2) = pascal(3)

generates a three-dimensional array whose first page is all zeros.

A(:,:,1) =
     0     0     0
     0     0     0
     0     0     0

A(:,:,2) =
     1     1     1
     1     2     3
     1     3     6

Using a colon with characters to iterate a for-loop,

for x='a':'d',x,end

results in

x = 
x = 
x = 
x = 
Was this topic helpful?