4.6 Array ranges
Until now we were talking about array indexing as if it would only be
possible to index a single element or whole subarrays, i.e. if we
have an array defined in the VARIABLES
section as
k[ 5, 8 ]; |
then the first element of the first row or the last subarray would be indexed as
k[ 1, 1 ] k[ 5 ] |
But it is also possible to parts of array by using range indexing. E.g.
k[ 1, 2 : 4 ] |
is an one-dimensional array, consisting of the second to the fourth element
of the first row of k
. And
k[ 2 : 4, 7 ] |
is also an one-dimensional array of the three elements, having the
values k[2,7]
, k[3,7]
and k[4,7]
. Finally,
k[ 2 : 4, 3 : 7 ] |
is a two-dimensional array of rank 3x5
. Using
k[ 2 : 4, 3 : 7 ] = 1; |
would set the third to seventh element of the second to the fourth row of
the array k
to 1.
Please note: If a range is used were the start index equals the end index a warning will be printed and the result is not an array range anymore but the value of the indexed element. Thus if you have e.g.
A[ 3 ] = { 1, 2, 3 }; |
then the pseudo-range
A[ 2 : 2 ] |
will be treated as if you had written
A[ 2 ] |
instead and not as an array with a single element.
Array indexing with ranges can be used on both the left as well as the right hand side of an assignment.
This document was generated by Jens Thoms Toerring on September 6, 2017 using texi2html 1.82.