2010-04-29 58 views
1

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

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'的错误。如果没有其他选择,我可以删除标题中的标题,但是对于很多很多文件,这将是一件乏味的工作。

回答

5

DLMREAD接受开始的行/列参数或者范围参数。所以,如果你的数据在第10行开始,你可以尝试

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

如果你喜欢TEXTSCAN,您可以指定一些HeaderLines跳过:

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

扫描到“用户配置选项”文档页面了解更多详情。

+0

dlmread是要走的路 – Geoff 2010-04-29 13:08:12