List files in current directory based on a pattern in a variable.

Hello, I have a column vector weeklyDates = [20101031;20101107;etc...]. In my directory i have files containing these patterns within their file names (ex: L3m_20101024-20101031_sst.nc).
I want to loop over weeklyDates such that in each iteration i get all the files containing the pattern in weeklyDates at each row.
Is there a way to use the function dir so that it reads each pattern contained in the variable weeklyDates iteratively?
Desired result: dir('*20101031*.nc')
dir('*20101107*.nc') ...

 채택된 답변

dpb
dpb 2022년 7월 5일
편집: dpb 2022년 7월 5일
weeklyDates = [20101031;20101107;...];
for i=1:numel(weeklyDates)
pattern=sprintf('*%d*.nc',weeklyDates(i));
d=dir(pattern);
for j=1:numel(d)
fname=d(j).name;
% process each file here...
end
end
NB: Corrected typo in format string -- also, dir() doesn't like the cellstr() so reverted back to old sprintf()

댓글 수: 6

It is giving an error: Error using compose (line 98)
Invalid format.
Typo - there's a second '%' after the %d instead of the intended '*' wildcard...
fmt='*%d*.nc';
Error using sscanf
First argument must be a string scalar or character vector.
I tried changing my array to a string array but it gave no result
Before AM coffee!!! NOT sscanf here, it's sprintf, of course.
>> pattern=sprintf('*%d*.nc',20101031)
pattern =
'*20101031*.nc'
>>
Haha thanks for the help. Much appreciated!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 File Operations에 대해 자세히 알아보기

제품

릴리스

R2018a

질문:

2022년 7월 5일

댓글:

2022년 7월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by