FreeMat

- Main Page
- Related Pages

CSVREAD Read Comma Separated Value (CSV) File

Section: Input/Ouput Functions

# Usage

The `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 `csvread` is

       x = csvread('filename')

which attempts to read the entire CSV file into array `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 `csvread` allows you to specify the first row and column (zero-based index)

      x = csvread('filename',firstrow,firstcol)

The last form allows you to specify the range to read also. This form is

      x = csvread('filename',firstrow,firstcol,readrange)

where `readrange` is either a 4-vector of the form `[R1,C1,R2,C2]`, where `R1,C1` is the first row and column to use, and `R2,C2` is the last row and column to use. You can also specify the `readrange` as a spreadsheet range `B12..C34`, in which case the index for the range is 1-based (as in a typical spreadsheet), so that `A1` is the first cell in the upper left corner. Note also that `csvread` is somewhat limited.

# Example

Here is an example of a CSV file that we wish to read in

         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

We start by reading the entire file

    --> csvread('sample_data.csv')

    ans =
     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

Next, we read everything starting with the second row, and third column

    --> csvread('sample_data.csv',1,2)

    ans =
     52 93  5  6
      4  4 90 -3
     13 67 30 43
     14 44  1  0

Finally, we specify that we only want the `3 x 3` submatrix starting with the second row, and third column

    --> csvread('sample_data.csv',1,2,[1,2,3,4])

    ans =
     52 93  5
      4  4 90
     13 67 30