我的数据标题为 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) 吗?提前感谢您的帮助
我的数据标题为 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) 吗?提前感谢您的帮助
您可以从文件名中获取完整日期,然后提取小时数。
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
将是小时、分钟和秒。
正如丹所指出的,您需要引用name
结构数组的字段fnames
(而不是data
无效的)。
hour = str2double( fname(1).name(17:18) );