The Selection Operation
Calling Sequence
Parameters
Description
Accessing Stored Values in Arrays, Matrices and Vectors
Programmer Indexing and Mathematical Indexing
Examples
A[expr]
A
-
name, table, list, set, string, or expression sequence
expr
expression
The selection operation can be used to select components from an aggregate object.
If A evaluates to an unassigned name then the selection operation yields an indexed name.
If A evaluates to a table then the selection operation is the standard table indexing operation.
If A evaluates to an hfarray the selection operation yields either a Maple float (if the number of indices matches the number of dimensions of the hfarray), or a sub-hfarray (if the number of indices is less than the number of dimensions).
If A evaluates to a list, set, or expression sequence, then the argument expr must evaluate to an integer, a range, a sequence of integers or NULL.
If A evaluates to a string, then A[expr] is equivalent to substring(A,expr).
If expr evaluates to an integer i, then the i^th element is returned.
If A evaluates to a list, set, or expression sequence, and expr evaluates to a range, then a list, set, or expression sequence of the elements specified by the range is returned. If the list, set or sequence contains sublists or subsets, then expr can be an expression sequence, in which case the appropriate subentry will be returned.
If A evaluates to a table, and expr evaluates to a range, then the selection remains unevaluated.
Negative integers can appear in expr. In this case, elements are counted from the end of the list, set, or expression sequence. The -1^th element is the last element, the -2^th element is the second last, and so on.
If expr evaluates to a range of positive integers, the lower bound must be less than or equal to one more than the upper bound. Specifically, A3..3 selects a single element, A3..2 produces an empty selection, and A3..1 is not permitted. Negative integers in a range are first converted to equivalent positive integers, then this requirement is imposed.
If expr evaluates to NULL, then an expression sequence of all elements is returned unless A is a string, in which case A is returned.
To select the first n elements of an Array (or Matrix, or Vector), A, you can use A[1..n]. Alternatively, you can enter A[..n].
To select trailing elements, use A[..n].
You can select all elements of an Array, Vector, or Matrix using A[...].
You can select specific rows or columns (or multiple rows or columns). To select a specific row, use A[a[i],...]. to select the ith row. Use A[...,a[i]] to select the ith column. To select multiple rows or columns, use A[[a[i], a[i+k]],...] or A[...,[a[i],a[i+k]]]
For more information, including examples, on using the selection operation, see chapter 4 of the Programming Guide.
Arrays, Matrices, and Vectors have different indexing mechanisms:mathematical and programmer indexing. Mathematical indexing uses the basic selection operator, [] while programmer indexing uses round brackets, ().
For details on programmer and mathematical indexing, see rtable_indexing.
L≔a,b,c:
L1
a
L1..2
a,b
L−2..−1
b,c
L3..3
c
L3..2
The following would lead to a selection of length -1, and so is not legal:
L3..1
Error, invalid subscript selector
X≔L
X≔a,b,c
X1
X1..2
X−2..−1
L≔1,2,3,4,5,6,7,8,9
L3,2,1
5
S≔a,b,c
S1
S1..2
S−2..−1
T1≔a:T2≔b:T3≔c:
T1
T1..2
T−2..−1
S≔a string
ng
Use the selection operation to select a specific row or column.
M≔Matrix⁡3,3,symbol=m
M≔m1,1m1,2m1,3m2,1m2,2m2,3m3,1m3,2m3,3
Select the first row of matrix, M.
M1,..
m1,1m1,2m1,3
Select the third column of M.
M..,3
m1,3m2,3m3,3
Select first and second row of M.
M1,2,..
m1,1m1,2m1,3m2,1m2,2m2,3
Select all of the elements of M.
M..
m1,1m1,2m1,3m2,1m2,2m2,3m3,1m3,2m3,3
See Also
exprseq
indexed
list
name
op
set
string
StringTools[SubString]
substring
table
type/indexable
Download Help Document