MATLAB Functions Help Desk

Purpose

Create vectors, array subscripting, and for iterations

Description

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:

 ```j:k ``` is the same as `[j,j+1,...,k]` ```j:k ``` is empty if `j` `>` `k` ```j:i:k ``` is the same as `[j,j+i,j+2i, ...,k]` ```j:i:k ``` is empty if `i` `>` `0` and `j` `>` `k` or if `i` `<` `0` and `j` `<` `k`

where `i`,`j`, and `k` are all scalars.

Below are the definitions that govern the use of the colon to pick out selected rows, columns, and elements of vectors, matrices, and higher-dimensional arrays:

 ```A(:,j) ``` is the `j`-th column of `A` ```A(i,:) ``` is the `i`-th row of `A` ```A(:,:) ``` is the equivalent two-dimensional array. For matrices this is the same as `A.` ```A(j:k) ``` is `A(j),` `A(j+1),...,A(k)` ```A(:,j:k) ``` is `A(:,j),` `A(:,j+1),...,A(:,k)` ```A(:,:,k) ``` is the `k`th page of three-dimensional array `A`. ```A(i,j,k,:) ``` 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. ```A(:) ``` 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`.

Examples

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
```

`for``         `Repeat statements a specific number of times
`linspace``    `Generate linearly spaced vectors
`logspace``    `Generate logarithmically spaced vectors
`reshape``     `Reshape array