Effacer les filtres
Effacer les filtres

extracting files having names with the same date from a dataset

2 vues (au cours des 30 derniers jours)
Salma fathi
Salma fathi le 31 Jan 2022
Modifié(e) : Stephen23 le 31 Jan 2022
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?

Réponse acceptée

Stephen23
Stephen23 le 31 Jan 2022
Modifié(e) : Stephen23 le 31 Jan 2022
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'}

Plus de réponses (2)

Walter Roberson
Walter Roberson le 31 Jan 2022
dinfo = dir('*120522.txt');
filenames = {dinfo.name};
  1 commentaire
Stephen23
Stephen23 le 31 Jan 2022
Modifié(e) : Stephen23 le 31 Jan 2022
That does not take into account the minutes.
Adding another asterisk will not fix that ... if only DIR supported ? to match one character :(

Connectez-vous pour commenter.


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

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by