# Cell Arrays

Cell arrays are generic data containers.

They are similar to matrices in that they have rows and columns, and specific elements can be accessed via one or more indices. The major difference is that the data in cell arrays does not have to be homogeneous. A cell can store a matrix, string, scalar, or even another cell array.

Cell arrays are defined using the {} operators. Elements in cell arrays are separated by
commas (or spaces) and semi-colons (or newlines), just like
matrices.

`a={ [1,2;3,4], 'hello'; 5,[1,2,3] }`

`a`is a 2x2 cell array.To access the contents of a particular cell, the {} operators are used
again.

`a{2,1} => 5`

Elements can be directly assigned into cells using two different syntaxes, both involving
the {} operators.

```
a(2,2) = { [1,2,3]}
a{2,2} = [1,2,3]
```

These two
statements are equivalent. The size function can be used to determine the number of rows and columns in a cell array (just like for other entities).

To delete cells in a cell array, set the index (using the () index) of the spot being
deleted to [ ].

`a(2,2) = {[]}`

To set a cell to an empty matrix, set the index (using the {} index) of the stop being set
to an empty matrix to [ ].

`a{2,2} = []`

An empty cell is created using just curly braces ({})

`a={}`