0001 function [X,Y,Xval,Yval] = collectPartitions(data,CV,oneTrialF,command)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 [r,c] = size(data.features);
0016 X = [];
0017 Y = [];
0018 Xval = [];
0019 Yval = [];
0020
0021 if nargin > 3 && strcmp(command,'train')
0022
0023
0024
0025 for ri = 1:r
0026 for ci = 1:c
0027 oneTrial = data.features{ri,ci};
0028 oneTrialClass = data.classes(ri,ci);
0029 trainIndices = 1:size(oneTrial,2);
0030 if ~isempty(CV.validateIndices)
0031 trainIndices = setdiff(trainIndices,CV.validateIndices{ri,ci});
0032 end
0033
0034 [X1,Y1] = oneTrialF(oneTrial,trainIndices,oneTrialClass,CV);
0035 X = [X X1];
0036 Y = [Y Y1];
0037
0038 if ~isempty(CV.validateIndices)
0039 [Xval1,Yval1] = oneTrialF(oneTrial,CV.validateIndices{ri,ci},oneTrialClass,CV);
0040 Xval = [Xval Xval1];
0041 Yval = [Yval Yval1];
0042 end
0043 end
0044 end
0045
0046 else
0047
0048
0049 for ri = 1:r
0050 for ci = 1:c
0051 oneTrial = data.features{ri,ci};
0052 oneTrialClass = data.classes(ri,ci);
0053 [X1,Y1] = oneTrialF(oneTrial,1:size(oneTrial,2),oneTrialClass,CV);
0054 X = [X X1];
0055 Y = [Y Y1];
0056 end
0057 end
0058 end
0059