loading multiple csv files using readmatrix
    18 views (last 30 days)
  
       Show older comments
    
How can I load to matlab workspace multiple matrices with the same dimension located in individual csv files? They have different file names with the same extension (.csv)
Expected variable in workspace: A 3D matrix. 
I have tried something like
Folder = 'C:\My\Folder';';
for k = 1 :100
   filename = fullfile(Folder, sprintf('%d.csv', k));
   data     = readmatrix(filename);
   ...
end
3 Comments
  Dyuman Joshi
      
      
 on 19 Oct 2023
				@julian gaviria, Does the folder containing the csv files have any other files than the ones to be read?
Accepted Answer
  Stephen23
      
      
 on 19 Oct 2023
        Use DIR:
P = 'C:\My\Folder';
S = dir(fullfile(P,'*.csv'));
for k = 1:numel(S)
    F = fullfile(P,S(k).name);
    S(k).data = readmatrix(F);
end
All of the imported file data are stored in the structure S. For example, the 2nd file:
S(2).name % filename
S(2).data % file data
2 Comments
  Stephen23
      
      
 on 19 Oct 2023
				
      Edited: Stephen23
      
      
 on 19 Oct 2023
  
			"How can I arrange all the content of  "S(2).data" in a 3D array? "
A = cat(3,S.data)
But note that the order of the files will be that returned by DIR, which might not be the order you expect. If you require the filenames in alpha-numerical order then you will have to sort S yourself, e.g. by downloading NATSORTFILES:
S = dir(..);
S = natsortfiles(S);
... etc
More Answers (1)
  Sulaymon Eshkabilov
      
 on 19 Oct 2023
        Here is how you can create such a code:
Folder = 'C:\Users\...';
F_Pat = fullfile(Folder, '*.csv');
FILES = dir(F_Pat);
F_Names={FILES.name};
for k = 1 :length(F_Names)
    Get_FName = FILES(k).name;
    F_FileName=fullfile(FILES(k).folder, Get_FName);
    data{k}= readmatrix(F_FileName);
    ...
end
All the best
1 Comment
  Sulaymon Eshkabilov
      
 on 19 Oct 2023
				My proposed code works for any file names not necessary file names should be sequential. All collected data in a cell array that can be also altered to store read data as a structure or stacked data of arrays, etc.  
See Also
Categories
				Find more on File Operations in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


