Run a loop on struct field

4 views (last 30 days)
DavidL88 on 29 Jun 2020
Edited: DavidL88 on 4 Jul 2020
I am running a statistical analysis. I need to run the analysis multiple times for 6 different 'sensortypes'. This data is stored in a 2x1 struct with two fields called S. The data to be inputted is in the secomd field 'ROI_Sig'. Can anyone help with getting the loop to run in the script below?
for i = 1:length(S)
ROIData = S(i).ROI_Sig;
sFiles = bst_process('CallProcess', 'process_test_permutation2', sFiles5 sFiles6, ...
'sensortypes', ROIData, ...
  1 Comment
DavidL88 on 1 Jul 2020
The script runs correctly if I delete the loop and replace i with any value 1-6 in the line ROIData = S(i).ROI_Sig;

Sign in to comment.

Accepted Answer

Neeraj Rajpurohit
Neeraj Rajpurohit on 30 Jun 2020
You can use the below mentioned command to get a string array of all the fields in a struct s.
fields = string(fieldnames(s))
Refer to the doc link belowfor more details
  1 Comment
DavidL88 on 30 Jun 2020
Thank you for your reply. It is not the fieldname that I want to enter. It is the data within the field. Please see structure below. I want to make a loop to input each of the 6 rows from field ROI_Sig
S =
6×1 struct array with fields:
ROI_Sig =
6×1 cell array
{'91, 92, 95, 96, 103'}
{'61, 67, 73, 74' }
{'113, 114' }
{'32, 34' }
{'127' }
{'41' }

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!