\section{CSVREAD Read Comma Separated Value (CSV) File}

\subsection{Usage}

The \verb|csvread| function reads a text file containing comma
separated values (CSV), and returns the resulting numeric
matrix (2D).  The function supports multiple syntaxes.  The
first syntax for \verb|csvread| is 
\begin{verbatim}
   x = csvread('filename')
\end{verbatim}
which attempts to read the entire CSV file into array \verb|x|.
The file can contain only numeric values.  Each entry in the
file should be separated from other entries by a comma.  However,
FreeMat will attempt to make sense of the entries if the comma
is missing (e.g., a space separated file will also parse correctly).
For complex values, you must be careful with the spaces).  The second
form of \verb|csvread| allows you to specify the first row and column 
(zero-based index)
\begin{verbatim}
  x = csvread('filename',firstrow,firstcol)
\end{verbatim}
The last form allows you to specify the range to read also.  This form
is
\begin{verbatim}
  x = csvread('filename',firstrow,firstcol,readrange)
\end{verbatim}
where \verb|readrange| is either a 4-vector of the form \verb|[R1,C1,R2,C2]|,
where \verb|R1,C1| is the first row and column to use, and \verb|R2,C2| is the
last row and column to use.  You can also specify the \verb|readrange| as
a spreadsheet range \verb|B12..C34|, in which case the index for the
range is 1-based (as in a typical spreadsheet), so that \verb|A1| is the
first cell in the upper left corner. Note also that \verb|csvread| is
somewhat limited.  The number of columns in the file cannot exceed
65535.  If it does, bad things will happen.
\subsection{Example}

Here is an example of a CSV file that we wish to read in
\begin{verbatim}
    sample_data.csv
10, 12, 13, 00, 45, 16
09, 11, 52, 93, 05, 06
01, 03, 04, 04, 90, -3
14, 17, 13, 67, 30, 43
21, 33, 14, 44, 01, 00
\end{verbatim}
We start by reading the entire file
\begin{verbatim}
--> csvread('sample_data.csv')
ans = 
  <int32>  - size: [5 6]
 
Columns 1 to 6
 10  12  13   0  45  16  
  9  11  52  93   5   6  
  1   3   4   4  90  -3  
 14  17  13  67  30  43  
 21  33  14  44   1   0  

\end{verbatim}
Next, we read everything starting with the second row, and third column
\begin{verbatim}
--> csvread('sample_data.csv',1,2)
ans = 
  <int32>  - size: [4 4]
 
Columns 1 to 4
 52  93   5   6  
  4   4  90  -3  
 13  67  30  43  
 14  44   1   0  

\end{verbatim}
Finally, we specify that we only want the \verb|3 x 3| submatrix starting
with the second row, and third column
\begin{verbatim}
--> csvread('sample_data.csv',1,2,[1,2,3,4])
ans = 
  <int32>  - size: [2 3]
 
Columns 1 to 3
 52  93   5  
  4   4  90  

\end{verbatim}
