How to use dir in a loop to be dynamic?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi, Sorry for a simple question. I have abc1_0.765mat ......abc50_0.7462mat How I can call the dir in a loop.
for i=1:50
A = dir('abc1*.mat');% but it also calls abc11 and I just need abc1
end
I tried A=dir(fullfile... % but I got error
Any Suggestion
댓글 수: 0
채택된 답변
Cedric
2015년 8월 20일
We actually use DIR the other way around. If file names are very regular and determined by e.g. a number, we built them using SPRINTF:
for fId = 1 : 50
filename = sprintf( 'data_%02d.mat', fId ) ;
... do something ...
end
This generates names data_01.mat, data_02.mat, etc, over successive iterations. When we don't know file names, we get a directory listing using wildcards if we know a pattern, e.g.
listing = dir( 'abc*.mat' ) ;
Calling DIR once only, we get listing as a struct array whose entries contain references to all relevant files. Then we iterate over these entries:
for fId = 1 : numel( listing )
filename = listing(fId).name ;
... do something ...
end
Finally, we use FULLFILE when we need to concatenate elements of path, e.g. a folder name and a file name:
folder = 'MyData' ;
listing = dir( fullfile( folder, 'abc*.mat' )) ;
for fId = 1 : numel( listing )
fileLocator = fullfile( folder, listing(fId).name ) ;
... do something ...
end
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 File Operations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!