How to simplify code which reads multiple files
    조회 수: 4 (최근 30일)
  
       이전 댓글 표시
    
Hello,
I have a script which runs through multiple csv files based on a query:
filePattern = fullfile(myFolder, '*ABC*.csv');
theFiles = dir(filePattern);
for k = 1 : length(theFiles)
    baseFileName = theFiles(k).name;
    fullFileName = fullfile(myFolder, baseFileName);
    %Rest of my code goes here
end
However, I also want it to run through files labelled 'DEF' and also run the same chunk of code that comes after the following line.
fullFileName = fullfile(myFolder, baseFileName);
I wasn' t sure how to simply this so I ended up just copying and pasting the entire code while just changing the first line to another query:
i.e. 
filePattern = fullfile(myFolder, '*DEF*.csv');
This definitely isn't efficient by any means so I was hoping to get some insight in any way possible to reduce the clutter.
댓글 수: 0
채택된 답변
추가 답변 (1개)
  Adam Danz
    
      
 2020년 1월 10일
        You can initially list all files with a given extension and then eliminate any files that do not contain one of the strings listed.  This solution uses contains(), released in r2016b.
% Get all files with given extension
filePattern = fullfile(myFolder, '*.csv');
theFiles = dir(filePattern);
% Isolate files with a matching pattern
filenameOptions = {'ABC','DEF'};
matchIdx = contains({theFiles.name},filenameOptions);
theFiles(~matchIdx) = []; % Eliminate all non-matched files
댓글 수: 0
참고 항목
카테고리
				Help Center 및 File Exchange에서 Spreadsheets에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!