【问题标题】:Reading a large csv datafile with multiple lines of headerinfo into Matlab将带有多行 headerinfo 的大型 csv 数据文件读入 Matlab
【发布时间】:2011-02-13 16:32:09
【问题描述】:

有人对如何将逗号分隔的数据文件读入 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' 的错误。如果没有其他选择,我可以只删除记事本中的标题,但是对于很多很多文件,这将是一项乏味的工作。

【问题讨论】:

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


    【解决方案1】:

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

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

    如果您更喜欢TEXTSCAN,可以指定多个HeaderLines 跳过:

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

    向下扫描到文档页面上的“用户可配置选项”以了解更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 2013-02-16
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多