How to read in specific File names?
    조회 수: 2 (최근 30일)
  
       이전 댓글 표시
    
I have a matrix containing a list of .csv files from a specific folder.
There are two different files however, one which ends in '_DE.csv' and the other ending with '_NDE.csv'.
What code can I use to specifically read them individually dependent on whether it is DE or NDE? This needs to be for i number of files.
An idea I think is to use if to produce a matrix of equal dimensions but with 1's and 0's for the specific file I want then multiply, but any attempt at this has failed so far.
댓글 수: 0
채택된 답변
  Stephen23
      
      
 2017년 2월 6일
        
      편집: Stephen23
      
      
 2017년 2월 6일
  
      >> C = {'A_NDE.csv';'B_DE.csv';'C_DE.csv';'E_NDE.csv';'F_NDE.csv'};
>> T = regexpi(C,'_(N?)DE.csv$','once','tokens');
>> X = cellfun('isempty',[T{:}]) % True == NE, False == NDE
X =
     0     1     1     0     0
and getting just those names:
>> C(X)
ans = 
    'B_DE.csv'
    'C_DE.csv'
>> C(~X)
ans = 
    'A_NDE.csv'
    'E_NDE.csv'
    'F_NDE.csv'
추가 답변 (1개)
  Guillaume
      
      
 2017년 2월 6일
        Assuming your matrix is actually a cell array of char vectors, the easiest way in R2016b is to use the new string class:
demoarray = {'file1_DE.csv', 'file2_NDE.csv', 'file3_NDE.csv', 'file4_DE.csv'};
desiredending = '_DE.csv';  
filteredarray = demoarray(endsWith(string(demoarray), '_DE.csv'))
참고 항목
카테고리
				Help Center 및 File Exchange에서 Workspace Variables and MAT Files에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

