从文本文件中读取表格

时间:2015-03-01 01:24:39

标签: matlab datetime-format

我正在尝试使用readtable功能将数据从文本文件导入工作区。

文本文件结构非常简单,由4列类型 date time integer float <组成/ em>分别如以下最小例子所示:

  

2013-07-07 05:15:19 8 213.0

     

2013-07-07 05:15:19 11 109.0

     

2013-07-07 05:15:20 14 33.5

     

2013-07-07 05:15:24 56 182.0

当我尝试加载这样的数据时:

data = readtable(filename,...
                'Format','%{yyyy-MM-dd}D %{HH:mm:ss}D %d %f %*[^\n]',...
                'ReadVariableNames',false);

我收到以下错误:

Error using textscan
Badly formed format string.

Error in table/readTextFile (line 160)
raw = textscan(fid,format,'delimiter',delimiter,'whitespace',whiteSpace, ...

Error in table.readFromFile (line 41)
    t = table.readTextFile(filename,otherArgs);

Error in readtable (line 114)
t = table.readFromFile(filename,varargin);

如果我尝试这样做:

data = readtable(filename,...
                'Format','%{yyyy-MM-dd}D%{HH:mm:ss}D%d%f%*[^\n]',...
                'Delimiter',' ',...
                'ReadVariableNames',false);

我得到完全相同的错误。

我检查了Mathwork's online documentation,但我无法找到解决问题的方法。

编辑:实际上,所需的表格格式是将 datetime 列替换为 date time 列。我正在做的是在阅读表后手动加入 date time 。如果你知道一种导入表的方法,可以立即合并这两个变量,那就太棒了。

1 个答案:

答案 0 :(得分:1)

最初,如果您使用数据格式执行此操作:

data = readtable('data.txt','Delimiter',' ','ReadVariableNames',false)

您将获得Nx4数据阵列,以便您可以根据需要进行操作。

您可以阅读如何使用导入为表here

的数据进行操作