how to get files in a folder to a cell format
    23 views (last 30 days)
  
       Show older comments
    
    vishnu vardhan reddy
 on 17 Apr 2023
  
i have  files in a folder which i need to make a cell which contains entire file name path  
for example  
my   folder contains  1.mat, 2.mat, 3.mat  files 
how should i loop them  to get into this form { 1.mat, 2.mat, 3.mat }  
1 Comment
  Stephen23
      
      
 on 17 Apr 2023
				
      Moved: Stephen23
      
      
 on 3 Jun 2025
  
			The simple MATLAB approach is to use a comma-separated list. To avoid the dot-directory names and any other files and folders, it is strongly recommended to specify a filename including wildcard and extension:
F = 'path_of_your_folder';
S = dir(fullfile(F,'*.mat'));
C = {S.name} % much simpler and more efficient than your loop
Accepted Answer
  Frederic Rudawski
      
 on 17 Apr 2023
        
      Edited: Frederic Rudawski
      
 on 17 Apr 2023
  
      Something like that should work:
folder = 'path_of_your_folder/'
data = dir(folder);
idx = 1;
for n = 1:length(data)
    if ~data(n).isdir
        filename{idx} = [folder data{n}.name]
        idx = idx+1;
    end
end
3 Comments
  Walter Roberson
      
      
 on 2 Jun 2025
				F = 'path_of_your_folder';
S = dir(fullfile(F,'*.mat'));
C = fullfile({S.folder}, {S.name});
as you want a cell containing the entire path name.
More Answers (1)
  Image Analyst
      
      
 on 17 Apr 2023
        Try this:
% Process a sequence of files.
folder = pwd; % Or wherever you want.
filePattern = fullfile(folder, '*.mat');
fileList = dir(filePattern) % Create a structure array.
% Get all filenames into one cell array.  Filenames have the complete path (folder prepended).
allFileNames = fullfile(folder, {fileList.name});
% Loop over all filenames to process them somehow.
numFiles = numel(allFileNames);
for k = 1 : numel(allFileNames)
    % Get this file name.
    fullFileName = allFileNames{k};
    fprintf('Processing %s\n', fullFileName);
    % Now do something with fullFileName, such as passing it to load.
end
1 Comment
  Image Analyst
      
      
 on 17 Apr 2023
				Glad it worked for you.
If this Answer solves your original question, then could you please click the "Accept this answer" link to award the answerer with "reputation points" for their efforts in helping you?  They'd appreciate it.  Thanks in advance.  🙂  Note: you can only accept one answer (so pick the best one) but you can click the "Vote" icon for as many Answers as you want.  Voting for an answer will also award reputation points.
See Also
Categories
				Find more on Loops and Conditional Statements 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!




