Skip to main content

getTrialIndexes.m


% This function is part of the NMSM Pipeline, see file for full license.
%
%
% data:
% Tasks - cell arrays containing the task names
% nTrials - number of trials in total - double
% nTasks - number of tasks - double
% TrialNames - trial names for each trial
%
% returns trial index for each task

function params = getTrialIndexes(params, nTrials, TrialNames)
%---Identify the trial index according to the labels in 'Tasks'
trialIndex = cell(1, length(params.taskNames));
for i=1:nTrials
for j=1:length(params.taskNames)
if contains(TrialNames{i}, params.taskNames{j})
if isempty(trialIndex{j})
trialIndex{j} = i;
else
trialIndex{j} = [trialIndex{j} i];
end
end
end
end
params.trialIndex = trialIndex;
params.synergyCategorizationOfTrials = getCategorizationOfTrials(...
params.synergyExtrapolationCategorization, trialIndex, nTrials);
params.residualCategorizationOfTrials = getCategorizationOfTrials(...
params.residualCategorization, trialIndex, nTrials);
end

function categorizationOfTrials = getCategorizationOfTrials(...
categorizationMethod, trialIndex, nTrials)
if strcmpi(categorizationMethod, 'trial')
for i = 1 : nTrials
categorizationOfTrials{i} = i;
end
elseif strcmpi(categorizationMethod, 'task')
categorizationOfTrials = trialIndex;
elseif strcmpi(categorizationMethod, 'subject')
categorizationOfTrials = {1 : nTrials};
end
end