0

我的数据标题为 ABCDE_D20110507T11522323 这表示数据是在 2011 年 5 月 7 日 ta 时间(T 之后)11:52:23:23 收集的。使用这个脚本我应该能够提取这些信息

fnames=dir('ABCDE*.mat') 
hour=str2num(fnames(1).data(11:18)) 

(11:18)代表字符号我做错了什么?我应该在脚本中指定我想要的格式,例如 (HH,MM,SS) 吗?提前感谢您的帮助

4

2 回答 2

1

您可以从文件名中获取完整日期,然后提取小时数。

fnames = dir('ABCDE*.mat');
for idx = 1:size(fnames, 1)
    str(idx,:) = fnames(idx).name(8:22)
    dateVector(idx,:) = datevec(str(idx,:), 'yyyymmddTHHMMSS') % Convert the string to date vector
    hrs(idx,:) = dateVector(idx,4:6)
end

假设您的目录中有两个文件。您的变量将如下所示:

str =

20130228T171052
20130228T143122

dateVector =

        2013           2          28          17          10          52
        2013           2          28          14          31          22


hrs =

    17    10    52
    14    31    22

hrs将是小时、分钟和秒。

于 2013-02-28T14:57:49.097 回答
0

正如丹所指出的,您需要引用name结构数组的字段fnames(而不是data无效的)。

hour = str2double( fname(1).name(17:18) );
于 2013-02-28T13:59:20.913 回答