In the APL array model, a matrix (sometimes table) is an array with rank 2. While matrices are named after the objects in linear algebra, which are multiplied using the matrix product, APL matrices do not have to be used in this way: they can store arbitrary data like any other array.
Rank 2 is the smallest rank for which multidimensional array theory offers an advantage over one-dimensional lists. Unlike vectors, Transpose on matrices changes the order of data, although there is only one possible transpose so dyadic Transpose is never needed. The ravel order of a matrix has two possible definitions; APLs choose to keep the rows together (row major order) rather than the columns (column major).
|APL features |
|Built-ins||Primitives (functions, operators) ∙ Quad name|
|Array model||Shape ∙ Rank ∙ Depth ∙ Bound ∙ Index (Indexing) ∙ Axis ∙ Ravel ∙ Ravel order ∙ Element ∙ Scalar ∙ Vector ∙ Matrix ∙ Simple scalar ∙ Simple array ∙ Nested array ∙ Cell ∙ Major cell ∙ Subarray ∙ Empty array ∙ Prototype|
|Data types||Number (Boolean, Complex number) ∙ Character (String) ∙ Box ∙ Namespace ∙ Function array|
|Concepts and paradigms||Conformability (Scalar extension, Leading axis agreement) ∙ Scalar function (Pervasion) ∙ Identity element ∙ Complex floor ∙ Total array ordering ∙ Tacit programming (Function composition, Close composition) ∙ Glyph|
|Errors||LIMIT ERROR ∙ RANK ERROR ∙ SYNTAX ERROR ∙ DOMAIN ERROR ∙ LENGTH ERROR ∙ INDEX ERROR ∙ VALUE ERROR|