\section{CELL Cell Array Definitions}

\subsection{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 \verb|C|, it is the equivalent to the
\verb|void *| array.  The general syntax for their construction is
\begin{verbatim}
   A = {row_def1;row_def2;...;row_defN}
\end{verbatim}
where each row consists of one or more elements, seperated by
commas
\begin{verbatim}
  row_defi = element_i1,element_i2,...,element_iM
\end{verbatim}
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.
\subsection{Examples}

Here is an example of a cell-array that contains a number,
a string, and an array
\begin{verbatim}
--> A = {14,'hello',[1:10]}
A = 
  <cell array> - size: [1 3]
 
Columns 1 to 3
 [14]    hello    [[1 10] int32]    

\end{verbatim}
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
\begin{verbatim}
--> B = {pi,i;e,-1}
B = 
  <cell array> - size: [2 2]
 
Columns 1 to 2
 [3.141593]    [0.000000+1.000000i]    
 [2.718282]    [-1]    

\end{verbatim}
Finally, we create a new cell array by placing \verb|A| and \verb|B|
together
\begin{verbatim}
--> C = {A,B}
C = 
  <cell array> - size: [1 2]
 
Columns 1 to 2
 {[1 3] cell }    {[2 2] cell }    

\end{verbatim}
