function main(model,task,subtask) disp('RUN'); switch task case 'pre' preprocess(model,subtask); case 'decode' decode(model,subtask); end end % disp('all warnings OFF') % warn = warning('off','all'); function preprocess(model,task) % parse the GUI and pass parameters as structure timeLine = getTimeLineParams(model); subjects = getSubjectCellList(model); classDef = parseClassDef(model); mask = ['^' cell2mat(getImageFileMask(model)) '.*\.img$']; % images % normalization switch task case 'COORD' disp('COORD'); out = struct; out.header = struct; out.header.type = 'COORD'; out.header.timeline = timeLine; out.header.classDef = classDef; coordargs = struct; coordargs.subjects = subjects; coordargs.timeline = timeLine; coordargs.basedir = model.baseDir; coordargs.sessionList = 1:3; coordargs.eventList = classDef.eventMatrix; coordargs.coords = parseCoordinateTextField(model); coordargs.mask = mask; out.subjectdata = runCoordTable(coordargs); assignin('base','preprocessedData',out); case 'ROI' disp('ROI'); out = struct; out.header = struct; out.header.type = 'ROI'; out.header.timeline = timeLine; out.header.classDef = classDef; roiargs = struct; roiargs.subjects = subjects; roiargs.timeline = timeLine; roiargs.classes = classDef; roiargs.mask = mask; roiargs.basedir = model.baseDir; roiargs.sessionList = 1:3; roiargs.eventList = classDef.eventMatrix; out.subjectdata = runROIImageMaskMode(roiargs); assignin('base','preprocessedData',out); case 'FBS' disp('not implemented') end end function decode(model,task) preprocessedData = evalin('base','preprocessedData'); switch task case 'SVM' disp('SVM'); svmopts = getSvmArgs(model,1); decode = calculateMultiSubjectDecodePerformance(preprocessedData.header,preprocessedData.subjectdata,svmopts); assignin('base','decode',decode); case 'XSVM' disp('not implemented') svmopts = getSvmArgs(model,0); decode = xsvm_subject_loop(preprocessedData.header,preprocessedData.subjectdata,svmopts); assignin('base','decode',decode); case 'SOM' disp('not implemented') case 'X-SOM' disp('not implemented') end % disp('warings restored'); % warning('on',warn); end