2.3.2 Selecting a range of indices
You can refer to several consecutive array elements by an index range:
x(3:6) means the four element subarray [x(3), x(4), x(5),
Occasionally, you also want to refer to a sparse subset of an array; you
can add an increment to an index range by means of a second colon:
x(3:7:2) means the three element subarray [x(3), x(5),
A negative increment reverses the order of the elements: x(7:3:-2)
represents the same three elements, but in the opposite order
[x(7), x(5), x(3)]. The second element mentioned in the index
range may not actually be present in the resulting subset, for example,
x(7:2:-2) is the same as x(7:3:-2), and x(3:6:2)
represents the two element subarray [x(3), x(5)].
Just as the increment defaults to 1 if it is omitted, the start and stop
elements of an index range also have default values, namely the first
and last possible index values. Hence, if x is a one-dimensional
array with 10 elements, x(8:) is the same as x(8:10). With
a negative increment, the defaults are reversed, so that x(:8:-1)
is the same as x(10:8:-1).
A useful special case of the index range default rules is x(::-1),
which represents the array x in reverse order.
Beware of a minor subtlety: x(3:3) is not the same thing as
x(3). An index range always represents an array of values, while
a scalar index represents a single value. Hence, x(3:3) is an
array with a single element, [x(3)].