Textscan doesn't work in reading csv files

6 views (last 30 days)
BR
BR on 27 Oct 2017
Commented: Cam Salzberger on 27 Oct 2017
I have a very large csv file with strings and Numeric values all together in it. The number of rows in the file exceeds more than 2 million. So, I can't even open in Excel. I tried using the following format
fileID = fopen('IBM.FullDepth.20140128.csv');
C = textscan(fileID,'%f %f %f %s %s %f %f %s %s');
fclose(fileID);
but the returned value of cell 'C' is empty. And I can't upload the file, since the size is too big please help.
Thanks

Accepted Answer

Star Strider
Star Strider on 27 Oct 2017
If you have R2013b or later, use the readtable (link) function.
Otherwise, see if you can read it with the xlsread (link) function.
  3 Comments
Cam Salzberger
Cam Salzberger on 27 Oct 2017
readtable will accept an optional 'Format' argument, but it is not necessary.
xlsread is for use on Microsoft Excel files. A CSV file is simply a text file with (most-commonly) comma-separated values. It is not an Excel file, despite Excel being a very common program used to open that type of file. xlsread will not work for CSV files when in basic mode at least (i.e. on non-Windows platforms, or if Excel is not installed).
csvread and dlmread are options for CSV files, but only work for numeric-data.
If you are reading a CSV with non-numeric data file pre-R2013b, you can always use fileread to just get the text at once, then parse it separately. Or do low-level file reading, as you tried with textscan.
-Cam

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!