### Table

A 2-dimensional table of values

#### Description:

The Table class is a type of KeyMap that represents a two-dimensional table of values. The astMapGet... and astMapPut... methods provided by the KeyMap class should be used for storing and retrieving values from individual cells within a Table. Each entry in the KeyMap represents a single cell of the table and has an associated key of the form " $<$COL$>$(i)" where " $<$COL$>$" is the upper-case name of a table column and " i" is the row index (the first row is row 1). Keys of this form should always be used when using KeyMap methods to access entries within a Table.

Columns must be declared using the astAddColumn method before values can be stored within them. This also fixes the type and shape of the values that may be stored in any cell of the column. Cells may contain scalar or vector values of any data type supported by the KeyMap class. Multi-dimensional arrays may also be stored, but these must be vectorised when storing and retrieving them within a table cell. All cells within a single column must have the same type and shape, as specified when the column is added to the Table.

Tables may have parameters that describe global properties of the entire table. These are stored as entries in the parent KeyMap and can be access using the get and set method of the KeyMap class. However, parameters must be declared using the astAddParameter method before being accessed.

Note - since accessing entries within a KeyMap is a relatively slow process, it is not recommended to use the Table class to store very large tables.

#### Inheritance

The Table class inherits from the KeyMap class.

#### Attributes

In addition to those attributes common to all KeyMaps, every Table also has the following attributes:
• ColumnLenC(column): The largest string length of any value in a column

• ColumnLength(column): The number of elements in each value in a column

• ColumnNdim(column): The number of axes spanned by each value in a column

• ColumnType(column): The data type of each value in a column

• ColumnUnit(column): The unit string describing each value in a column

• Ncolumn: The number of columns currently in the Table

• Nrow: The number of rows currently in the Table

• Nparameter: The number of global parameters currently in the Table

#### Functions

In addition to those functions applicable to all KeyMaps, the following functions may also be applied to all Tables: