Tabular data array containing multiple columnar variables.
A table
is a tabular data structure that collects multiple parallel
named variables.
Each variable is treated like a column. (Possibly a multi-columned column, if
that makes sense.)
The types of variables may be heterogeneous.
A table object is like an SQL table or resultset, or a relation, or a DataFrame in R or Pandas.
A table is an array in itself: its size is nrows-by-nvariables, and you can index along the rows and variables by indexing into the table along dimensions 1 and 2.
A note on accessing properties of a table
array: Because .-indexing is
used to access the variables inside the array, it can’t also be directly used
to access properties as well. Instead, do t.Properties.<property>
for
a table t
. That will give you a property instead of a variable.
(And due to this mechanism, it will cause problems if you have a table
with a variable named Properties
. Try to avoid that.)
WARNING ABOUT HANDLE CLASSES IN TABLE VARIABLES
Using a handle class in a table variable (column) value may lead to unpredictable and buggy behavior! A handle class array is a reference type, and it holds shared mutable state, which may be shared with references to it in other table arrays or outside the table array. The table class makes no guarantees about what it will or will not do internally with arrays that are held in table variables, and any operation on a table holding handle arrays may have unpredictable and undesirable side effects. These side effects may change between versions of Tablicious.
We currently recommend that you do not use handle classes in table variables. It may be okay to use handle classes *inside* cells or other non-handle composite types that are used in table variables, but this hasn’t been fully thought through or tested.
See also: tblish.table.grpstats, tblish.evalWithTableVars, tblish.examples.SpDb
table
: cellstr
VariableNames ¶The names of the variables in the table, as a cellstr row vector.
table
: cell
VariableValues ¶A cell vector containing the values for each of the variables.
VariableValues(i)
corresponds to VariableNames(i)
.
table
: cellstr
RowNames ¶An optional list of row names that identify each row in the table. This is a cellstr column vector, if present.
table
: cellstr
DimensionNames ¶Names for the two dimensions of the table array, as a cellstr row vector. Always
exactly 2-long, because tables are always exactly 2-D. Defaults to
{"Row", "Variables"}
. (I feel the singular "Row" and plural "Variables" here
are inconsistent, but that’s what Matlab uses, so Tablicious uses it too, for
Matlab compatibility.)