## CELL Cell Array Definitions

Section: Variables and Arrays

### Usage

The cell array is a fairly powerful array type that is available in FreeMat. Generally speaking, a cell array is a heterogenous array type, meaning that different elements in the array can contain variables of different type (including other cell arrays). For those of you familiar with `C`, it is the equivalent to the `void *` array. The general syntax for their construction is

       A = {row_def1;row_def2;...;row_defN}

where each row consists of one or more elements, seperated by commas

      row_defi = element_i1,element_i2,...,element_iM

Each element can be any type of FreeMat variable, including matrices, arrays, cell-arrays, structures, strings, etc. The restriction on the definition is that each row must have the same number of elements in it.

### Examples

Here is an example of a cell-array that contains a number, a string, and an array

    --> A = {14,'hello',[1:10]}

    A =

     [14]   ['hello']   [[1 10] int32]

    -->
    quit

Note that in the output, the number and string are explicitly printed, but the array is summarized. We can create a 2-dimensional cell-array by adding another row definition

    --> B = {pi,i;e,-1}

    B =

     [3.14159]   [0+1i]
     [2.71828]   [-1]

    -->
    quit

Finally, we create a new cell array by placing `A` and `B` together

    --> C = {A,B}

    C =

     {[1 3] cell }   {[2 2] cell }

    -->
    quit