#### 8.2.55 table ¶

Class: table ¶

  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

Instance Variable of `table`: ``cellstr`` VariableNames ¶

  The names of the variables in the table, as a cellstr row vector.

Instance Variable of `table`: ``cell`` VariableValues ¶

  A cell vector containing the values for each of the variables. `VariableValues(i)` corresponds to `VariableNames(i)`.

Instance Variable of `table`: ``cellstr`` RowNames ¶

  An optional list of row names that identify each row in the table. This is a cellstr column vector, if present.

Instance Variable of `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.)