how to get files in a folder to a cell format

조회 수: 17 (최근 30일)
vishnu vardhan reddy
vishnu vardhan reddy 2023년 4월 17일
이동: Stephen23 2025년 6월 3일
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
Stephen23
Stephen23 2023년 4월 17일
이동: Stephen23 2025년 6월 3일
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

댓글을 달려면 로그인하십시오.

채택된 답변

Frederic Rudawski
Frederic Rudawski 2023년 4월 17일
편집: Frederic Rudawski 2023년 4월 17일
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
Murthy
Murthy 2025년 6월 2일
Fantastic answer. It worked like a charm. Thanks.
Walter Roberson
Walter Roberson 2025년 6월 2일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2023년 4월 17일
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
Image Analyst
Image Analyst 2023년 4월 17일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by