TwoDimensionalArray
The TwoDimensionalArray is used for
storing data in a two-dimensional data structure indexed by row and column.
Such an array is a homogeneous data structure in that all the entries of the
array must belong to the same Axiom domain (although see
The Any Domain). Each array has a fixed
number of rows and columns specified by the user and arrays are not
extensible. In Axiom, the indexing of two-dimensional arrays is one-based.
This means that both the "first" row of an array and the "first" column of
an array are given the index 1. Thus, the entry in the upper left corner
of an array is in position (1,1).
The operation new creates an array with a
specified number of rows and columns and fills the components of that array
with a specified entry. The arguments of this operation specify the number
of rows, the number of columns, and the entry. This creates a five-by-four
array of integers, all of whose entries are zero.
The entries of this array can be set to other integers using the operation
setelt.
Issue this to set the element in the upper left corner of this array to 17.
Now the first element of the array is 17.
Likewise, elements of an array are extracted using the operation
elt.
Another way to use these two operations is as follows. This sets the
element in position (3,2) of the array to 15.
This extracts the element in position (3,2) of the array.
The operation elt and
setelt come equipped with an error check
which verifies that the indices are in the proper ranges. For example,
the above array has five rows and four columns, so if you ask for the
entry in position (6,2) with arr(6,2) Axiom displays an error message.
If there is no need for an error check, you can call the operations
qelt and
qsetelt!
which provide the same functionality
but without the error check. Typically, these operations are called in
well-tested programs.
The operations row and
column extract rows and columns, respectively,
and return objects of
OneDimensionalArray with the
same underlying element type.
You can determine the dimensions of an array by calling the operations
nrows and
ncols, which return the number of rows
and columns, respectively.
To apply an operation to every element of an array, use
map. This creates a new array. This
expression negates every element.
This creates an array where all the elements are doubled.
To change the array destructively, use
map! instead of
map.
If you need to make a copy of an array,
use copy.
Use member? to see if a given element is in
an array.
To see how many times an element appears in an array, use
count.
For more information about the operations available for
TwoDimensionalArray, issue
For more information on related topics, see
Matrix and
OneDimensionalArray.