在Matlab中拆分时间戳

Bob*_*Bob 5 matlab textscan

我有一个数据值和时间戳的文件,我试图在Matlab中拆分.这是格式:

-18.151346    Mon Jan 28 11:33:08 2013
Run Code Online (Sandbox Code Playgroud)

我正在使用textscan功能来尝试拆分它.

data=textscan(fid,'%f%s%s%f%s%n','delimiter','space');
Run Code Online (Sandbox Code Playgroud)

我正在尝试将时间戳拆分为单独的列,以便我可以使用时间而不是日期或年份.我看了一些以前非常相似的问题,但由于某种原因,我无法让它做我想做的事.我得到的单元格数组采用这种格式.

Column 1     Column 2   Column 3 
-18.151346   Mon       Jan 28 11:33:08 2013
Run Code Online (Sandbox Code Playgroud)

我是Matlab的新手,所以任何帮助都将不胜感激.提前致谢.

sla*_*ton 1

  1. 您使用'space'字符串作为分隔符,这在textscan. 将其指定为' '替代。
  2. 您希望将连续空格视为一个,因此您还应该将'MultipleDelimsAsOne'标志设置为 1。

正确的语法应该是:

textscan( fid, '%f%s%s%s%s%n', 'delimiter', ' ', 'MultipleDelimsAsOne', 1);
Run Code Online (Sandbox Code Playgroud)

如果您没有尝试修改分隔符选项,则默认情况下此行为会正确完成,因此只需省略所有选项即可:

textscan( fid, '%f%s%s%s%s%n');
Run Code Online (Sandbox Code Playgroud)

另请注意,字符串中由空格包围的每个项目都需要一个标志。换句话说,对于这样的字符串:

-18.151346 2013 年 1 月 28 日星期一 11:33:08

字符串形式的时间戳将存储在结果元胞数组的第五列中。