Vector creation, array subscripting, and
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
a regularly-spaced vector
the increment between elements. The vector elements are roughly equal
m = fix((k-j)/i).
i is not an integer, then floating
point arithmetic plays a role in determining whether
k in the vector, since
not be exactly equal to
If you specify nonscalar arrays, then MATLAB interprets
x = colon(j,k) and
x = colon(j,i,k) are
alternate ways to execute the commands
but are rarely used. These syntaxes enable operator overloading for
A(j:k) are common indexing expressions for
A that contain a colon. When you use a
colon as a subscript in an indexing expression, such as
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
Some indexing expressions combine both uses of the colon, as in
Common indexing expressions that contain a colon are:
nth column of matrix
mth row of matrix
pth page of three-dimensional array
A(:)reshapes all elements of
Ainto a single column vector. This has no effect if
Ais already a column vector.
A(:,:)reshapes all elements of
Ainto a two-dimensional matrix. This has no effect if
Ais already a matrix or vector.
A(j:k)uses the vector
j:kto index into
Aand 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:kto index in the second dimension. This returns a matrix with columns
[A(:,j), A(:,j+1), ..., A(:,k)].
Create Unit-Spaced Vector
Create a unit-spaced vector of numbers between 1 and 10. The colon operator uses a default increment of +1.
x = 1:10
x = 1×10 1 2 3 4 5 6 7 8 9 10
Create Vector with Specified Increment
Create vectors that increment or decrement by a specified value.
Create a vector whose elements increment by 0.1.
x = 0:0.1:1
x = 1×11 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
Create a vector whose elements decrement by -2.
y = 10:-2:0
y = 1×6 10 8 6 4 2 0
Index Matrix Rows and Columns
Examine several ways to index a matrix using a colon
Create a 3-by-3 matrix. Index the first row.
A = magic(3)
A = 3×3 8 1 6 3 5 7 4 9 2
ans = 1×3 8 1 6
Index the second and third column.
ans = 3×2 1 6 5 7 9 2
Reshape the matrix into a column vector.
ans = 9×1 8 3 4 1 5 9 6 7 2
In the context of a
for-loop, the colon specifies the loop iterations.
for-loop that squares a number for values of
n between 1 and 4.
for n = 1:4 n^2 end
ans = 1
ans = 4
ans = 9
ans = 16
j — Starting vector value
Starting vector value, specified as a real numeric scalar. If
< k so that the output vector is not empty, then
the first element in the vector.
x = 0:5
k — Ending vector value
Ending vector value, specified as a real numeric scalar.
the last value in the vector only when the increment lines up to exactly
k. For example, the vector
5 as the last value, but
0:0.3:1 does not include
the value 1 as the last value since the increment does not line up
with the endpoint.
x = 0:5
i — Increment between vector elements
1 (default) | scalar
Increment between vector elements, specified as a real numeric scalar.
x = 0:0.5:5
x — Regularly-spaced vector
Regularly-spaced vector, returned as a row vector. If
> k, then
x = j:k is an empty matrix.
More generally, the syntax
x = j:i:k returns an
empty matrix when:
kis an empty input
i == 0
i > 0and
j > k
i < 0and
j < k
forreference page has a description of how to use
:in the context of loop statements.
linspaceis similar to the colon operator
:, but it gives direct control over the number of points and always includes the endpoints. The sibling function
logspacegenerates logarithmically spaced values.
When you create a vector to index into a cell array or structure array (such as
), MATLAB returns multiple outputs in a comma-separated list. For more information, see How to Use the Comma-Separated Lists.
Calculate with arrays that have more rows than fit in memory.
This function supports tall arrays with some limitations. For more information, see Index and View Tall Array Elements.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
Complex inputs are not supported.
icannot have a logical value.
Vector inputs are not supported.
Inputs must be constants.
Uses single-precision arithmetic to produce single-precision results.
Run code in the background using MATLAB®
backgroundPool or accelerate code with Parallel Computing Toolbox™
This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
Usage notes and limitations:
To run this function on a GPU and obtain a
gpuArrayoutput, use any of the following syntaxes:
x = gpuArray.colon(j,k) x = gpuArray.colon(j,i,k)
Alternatively, you can also pass
gpuArrayobjects directly to the colon operator:
x = gpuArray(j):gpuArray(k) x = gpuArray(j):gpuArray(i):gpuArray(k)
64-bit integers are not supported.
For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).