Can someone advise how I fix this loop?

2 views (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(DataMat.F.events(3).times)

Accepted Answer

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 5 Jun 2020
Hi,
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(DataMat.F.events(ii).times);
end
  5 Comments
DavidL88
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)

Tags

Community Treasure Hunt

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

Start Hunting!