MATLAB:分批导入大型文件

3

我正在尝试将一个大的csv文件(215000X3)分批次导入,每批导入50个。在寻找解决方案时,有人建议使用"textscan"。我使用以下代码实现:

N = 50;
fid = fopen('PIDFile.csv');
formatSpec = '%s %s %s';
k=0;
while ~feof(fid)
    k = k+1;
    block = textscan(fid, formatSpec, N, 'Delimiter',',');
end

运行代码后,我得到的'block'如下所示:
34X1 cell    34X1 cell     34X1 cell

被导入的文件是一个普通的csv文件。我一直在研究fread、fscan、csvread等方法,但都没有找到提供块导入的示例或解决方案。如有任何建议或意见,请不吝赐教。
谢谢, H

如果您正在使用最近版本的MATLAB(例如R2014b),您可以查看“数据存储”,它支持CSV文件的部分读取:http://www.mathworks.com/help/matlab/import_export/read-and-analyze-data-in-a-tabulartextdatastore.html - Shanqing Cai
我正在使用R2014a版本,但是它的库中显然没有"datastore"函数。谢谢。 - hrshd
1个回答

1

哦,好吧,我所要做的只是:

block = cell2mat(textscan(fid, formatSpec, N, 'Delimiter',','));

并且问题得到了解决!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接