Textscan doesn't work in reading csv files

3 次查看(过去 30 天)
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

采纳的回答

Star Strider
Star Strider 2017-10-27
If you have R2013b or later, use the readtable (link) function.
Otherwise, see if you can read it with the xlsread (link) function.
  3 个评论
Star Strider
Star Strider 2017-10-27
As always, my pleasure!
The readtable function uses whatever it needs to import your data. To the best of my knowledge, neither readtable nor xlsread require (or even accept) format descriptors.
Cam Salzberger
Cam Salzberger 2017-10-27
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

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by