将多行headerinfo的大型csv数据文件读入Matlab

时间:2010-04-29 07:06:57

标签: matlab csv file-io import-from-csv large-data

有没有人有一些建议如何将逗号分隔的数据文件读入Matlab?简单的解决方案(如dlmread,fscanf)似乎不起作用,因为有多(10)行标题信息。我最接近解决方案的是:

C=textscan(datafile)
G=cell2mat(C{1,1}(34:endoffile)}) //34 is the line the data starts
V=str2num(G)

这里的问题是,例如数据如下所示:

;1.0345,937,18,763
;1.0355,947,4,652
etc.

当转换为矩阵时,单元格中的所有字符串必须具有相同的大小,否则将给出使用“vertcat”的错误。如果没有其他选择,我可以删除标题,比如说记事本,但是有很多文件,这将是一项繁琐的工作。

1 个答案:

答案 0 :(得分:5)

DLMREAD接受起始行/列参数,或者接受范围参数。因此,如果您的数据从第10行开始,您可以尝试

V = dlmread(datafile, '', 9, 0);

如果您更喜欢TEXTSCAN,则可以指定要跳过的HeaderLines个数:

V = textscan(datafile, ..., 'HeaderLines', 10, ...);

有关详细信息,请在文档页面上向下扫描到“用户可配置选项”。