Help Creating For Loop to Run Functions on Multiple Files
10 次查看(过去 30 天)
显示 更早的评论
I wrote a function that I want to apply to every file in a folder. I found this resource (https://www.mathworks.com/matlabcentral/answers/1445389-applying-a-single-function-to-many-files-in-one-folder) for creating a loop to apply my function to the files in a folder. The code shared is as follows:
FolderIn = 'D:\Your\Folder'; FolderOut = 'D:\Your\B' FileList = dir(fullfile(Folder, '*.mat’)); for iFile = 1:numel(FileList) File = fullfile(Folder, FileList(iFile).name); Data = load(File); % Now do what you want with the data NewData = Data; save(fullfile(FolderOut, FileList(iFile).name), 'NewData', '-struct'); end
1. I don’t understand what “ D: ” does in their code. In the first two lines. 2. Even when I set the directory to the folder containing the files I want to reference, the “fullfile” function does not run when I give it the file name. 3. Is there a better way to run my function on a bunch of files?
Thank you!
3 个评论
Stephen23
2025-3-21
"What does DIR stand for..."
This function: https://www.mathworks.com/help/matlab/ref/dir.html
"... and what is a DIR match string in layman's terms?"
FileList = dir(fullfile(Folder, '*.mat’));
% ^^^^^^^^^^^^^^^^^^^^^^^^^ this
The match string (simply called "name" in the DIR documentation) has to match the filenames (possibly including paths) of the files that you wish DIR to identify.
采纳的回答
Thorsten
2025-3-20
编辑:Thorsten
2025-3-20
The code below displays every file in the present folder. Replace
pwd
with the name of your folder if you want to process a different folder. Replace
disp
with your command that you wish to apply to each file.
folder = pwd;
filelist = dir(fullfile(folder, '*.*'));
for i = 1:numel(filelist)
file = fullfile(folder, filelist(i).name);
disp(file)
end
6 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!