Loading files with different names in MatLab

I'm trying to read .vhdr files into MatLab in a loop function, but they all contain a different date in the filename. How can I get this to work? It's in the structure below where it starts with '01_' then has the subject number '####', then 'rest' and then the date of collection '02202021' then the .vhdr filetype.
File name structure: '01_####_rest_02202021.vhdr'
I have defined my subject numbers above in a variable called subject.
Such as:
subject = {'00001', '00002', '00003'}
EEG=poploadbv('C:/Users/M/Datasets',['01_',subject,'_Rest_','*.vhdr']);

Answers (1)

Do you want to load all files inside a folder?
Folder = 'C:/Users/M/Datasets';
FileList = dir(fullfile(Folder, '*.vhdr'));
Data = cell(1, numel(FileList));
Subject = cell(1, numel(FileList));
for iFile = 1:numel(FileList)
FileName = FileList(iFile).name;
File = fullfile(FileList(iFile).folder, FileName);
Data{iFile} = poploadbv(File);
tmp = splitstr(FileName, '_';)
Subject{iFile} = tmp{2};
end

5 Comments

The files needed are actually contained within subdirectories by the subject number. So, inside Datasets is a folder for 00001 within that folder is the .vdhr that I need. Each file structure is the same, I just need the .vhdr file for each subject. The rest of the code should run per participant and then loop back around to restart for 00002.
Jan
Jan on 3 Apr 2021
Edited: Jan on 4 Apr 2021
@Meredith Abrams: Can you use the code I've suggested to your needs?
Hi there! Thank you so much! This code does not fit my needs as all of the data are stored in separate directories rather than a single directory. I may change the way they are stored and try this though.
Or use:
FileList = dir(fullfile(Folder, '**', '*.vhdr'));
I believe using two stars :
Folder = 'C:/Users/M/Datasets';
FileList = dir(fullfile(Folder, '**/*.vhdr'));
should work. Does it not?

Sign in to comment.

Categories

Asked:

on 2 Apr 2021

Commented:

on 8 Apr 2021

Community Treasure Hunt

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

Start Hunting!