extracting files having names with the same date from a dataset

2 次查看(过去 30 天)
I am having some txt files as a training dataset for a modele I'm trying to build.
if we asumed that the txt files names has the format YYYYMMDDHHmm as 196611110428.
if I would like to extract files that have the month=12, day=05, hour=22. discarding the years and the minutes, How I can possibly do that?

采纳的回答

Stephen23
Stephen23 2022-1-31
编辑:Stephen23 2022-1-31
Here is one approach, tested on the attached files:
P = '.'; % absolute or relative path to where the files are saved
S = dir(fullfile(P,'*.txt'));
[~,F,~] = fileparts({S.name});
T = datetime(F,'InputFormat','uuuuMMddHHmm');
X = T.Month==12 & T.Day==5 & T.Hour==22
X = 1×6 logical array
0 1 1 0 0 1
{S(X).name} % training set
ans = 1×3 cell array
{'196612052228.txt'} {'196612052258.txt'} {'202212052228.txt'}
{S(~X).name} % not training set
ans = 1×3 cell array
{'196611110428.txt'} {'196612110428.txt'} {'202211110428.txt'}

更多回答(2 个)

Walter Roberson
Walter Roberson 2022-1-31
dinfo = dir('*120522.txt');
filenames = {dinfo.name};
  1 个评论
Stephen23
Stephen23 2022-1-31
编辑:Stephen23 2022-1-31
That does not take into account the minutes.
Adding another asterisk will not fix that ... if only DIR supported ? to match one character :(

请先登录,再进行评论。


Sambit Supriya Dash
a = 196611110428;
strA = string(a);
d = datetime(strA,'InputFormat','yyyyMMddHHmm');
disp(d)
Month = month(d);
Day = day(d);
Hour = hour(d);

类别

Help CenterFile Exchange 中查找有关 Calendar 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by