grabbing specific/not all files in a folder
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Franziska Motka
il 10 Ago 2022
Commentato: Franziska Motka
il 11 Ago 2022
Hi everyone,
I'm doing a fMRI analysis with a script I got from a collegue and adapted it for my purpose. Unfortunately, I stuck on one problem, so I would like to ask you for help. I have 320 .IMA files for each participant in a folder called "CUE*". Since the first 5 files are dummy scans, I only want to grab file 6 to 320 and ignore the first five. This is how the files are called: e.g. CBM210.MR.STUDIES_PSYCHOLOGY.0008.0001.2022.04.14.14.06.28.254369.304708762 with the 0001 in bold showing the numbers, running until 0320.
This is the respective part in the script, were I grab the .IMA files and work with them:
f
MRI_dir = fullfile(raw_dir, subFolder.name, 'STU*', 'CUE*');
func_files = dir(fullfile(fMRI_dir,'*.IMA'));
func_files_cell = orderFiles4SPM(func_files);
fprintf('%d func input files found...\n',length(func_files_cell))
matlabbatch{2}.spm.util.import.dicom.data = func_files_cell';
matlabbatch{2}.spm.util.import.dicom.outdir = {out_dir_func};
I was thinking about doing something like *[0006;0320]*.IMA or for i=1:nimg with i+5 but I could not make it so far...
Any help is more then welcome!
Best,
Franzi
0 Commenti
Risposta accettata
Walter Roberson
il 10 Ago 2022
Unfortunately the wildcards that MATLAB accepts are only a subset of what is generally supported by the operating system. You will need to use other ways, such as
[~, basenames, ~] = fileparts({func_files.name});
prefixpattern = '(?<=\w+\.\w+\.\w+\.\w+\.)(\d+)';
prefixes = regexp(basenames, prefixpattern, 'match', 'once');
wanted = ~ismember(prefixes, {'0001', '0002', '0003', '0004', '0005'});
func_files = func_files(wanted);
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Get Started with MATLAB 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!