Select specific files from subfolders

1 visualizzazione (ultimi 30 giorni)
Hi! I performed experiments and want to plot certain experiments together in 1 plot. Every experiment is saved in a different subfolder of the "main folder". The subfolders are named after the codes of the experiments. Now I want the code to select for example the subfolders of tests C3, C6, C8 and C9 specifically. On internet I found how to select all the files of a certain extension in all the subfolders (filePattern = fullfile(pathname, '**/*.asc'));, but now I want the script to only look at a few subfolders. Does anyone know how this can be done?
  2 Commenti
Jonas
Jonas il 3 Mag 2021
i suggest you simply remove those entries which do not contain the folder names you are interested in
Bob Thompson
Bob Thompson il 3 Mag 2021
It would also be possible to read in all of the subfolders, and then pick the ones you want based on some comparison. I.e. make a string array of the experiment codes you want, and just find those.
codes = {'C3','C6','C8','C9'};
filelist = dir(pathname);
filelist = filelist(ismember([filelist(:).name]==codes));
I don't think that bit is going to work right out of the gate, but it should give you an example of what I mean.

Accedi per commentare.

Risposta accettata

Jan
Jan il 3 Mag 2021
Folder = 'C:\Your\Folder';
SubFolderList = {'C3', 'C6', 'C8', 'C9'};
for iSub = 1:numel(SubFolderList)
File = fullfile(Folder, SubFolderList{iSub}, 'YourFile.mat');
Data = load(File);
... what to do now?
end
Or:
DirList = dir('C:\Your\Folder\**\*.mat');
SubSet = {'C3', 'C6', 'C8', 'C9'};
FileList = fullfile({DirList(:).folder}, {DirList(:).name});
% Find all files, which contain '\C3\' or '\C6\', ...
Selected = contains(FileList, strcat(filesep, SubSet, filesep));

Più risposte (0)

Categorie

Scopri di più su File Operations in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by