Can someone advise how I fix this loop?

1 view (last 30 days)
I am using a MatLab based interface for processing EEG files collected from 59 subjects. The below code works but only for 1 file and I have 59 files I want a result from. sFiles filters the files stored in this interface and correctly returns 59 files. However, sStudy only returns a result for the first file. How do I run a loop on the below code so I can get 'n' for all 59 files? I would like to get the result 'n' for each file along with the subject name (in sFiles as SubjectName).
sFiles = bst_process('CallProcess', 'process_select_search', [], [], ...
'search', '(([name CONTAINS "resample"]))');
sStudy = bst_get('Study', sFiles.iStudy);
DataMat = in_bst_data(sStudy.Data(i).FileName);
n = numel(

Accepted Answer

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 5 Jun 2020
That would be somewhat in this way:
for ii = 1:59
sFiles(ii).iStudy = bst_process('CallProcess', 'process_select_search', [], [], ...
'search', '(([name CONTAINS "resample"]))');
sStudy = bst_get('Study', sFiles(ii).iStudy);
DataMat = in_bst_data(sStudy.Data(ii).FileName);
n(ii) = numel(;
DavidL88 on 10 Jun 2020
Hi Sulaymon,
That was the right approach thanks. I had to change the variables.

Sign in to comment.

More Answers (0)


Find more on EEG/MEG/ECoG in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!