我的数据标题为ABCDE_D20110507T11522323。这表示数据是在2011年5月7日的时间(T之后)11:52:23:23收集的。 使用此脚本我应该能够提取此信息
fnames=dir('ABCDE*.mat')
hour=str2num(fnames(1).data(11:18))
(11:18)
表示字符编号
我究竟做错了什么?我应该在脚本中指定我想要的格式,例如(HH,MM,SS)吗?
在此先感谢您的任何帮助
答案 0 :(得分: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
将是小时,分钟和秒。
答案 1 :(得分:0)
正如Dan指出的那样,您需要引用结构数组name
的字段fnames
(而不是data
,这是无效的。)
hour = str2double( fname(1).name(17:18) );