| 
   Home Manual Packages Global Index Keywords Quick Reference
   | 
  2.3.4 Selecting an arbitrary list of indices 
An index list is an array of index values.  Use an index list to specify
an arbitrary subset of an array: x([5,1,2,1]) means the four
element array [x(5), x(1), x(2), x(1)].  The where function
returns an index list: 
 |  | list= where(x > 3.5)
y= x(list)
 | 
 
These lines define the array y to be the subset of the x
array, consisting of the elements greater than 3.5. 
Like the result of an index range, the result of an index list is itself
an array.  However, the index list follows a more general rule: The
dimensionality of the result is the same as the dimensionality of the
index list.  Hence, x([[5, 1], [2, 1]]) refers to the two
dimensional array [[x(5), x(1)], [x(2), x(1)]].  The general rule
for index lists is: 
 |  | Dimensions from the dimensions of the index list; values from the array
being indexed.
 | 
 
Note that the scalar index value is a special case of an index list
according to this rule.
 
The rule applies to multi-dimensional arrays as well: If x is a
five-by-nine array, then x(, [[5, 1], [2, 1]]) is a
five-by-two-by-two array.  And x([[5, 1], [2, 1]], 3:6) is a
two-by-two-by-four array. 
 
 |