function subjectData = runCoordTable(args) disp('run coord table') subjects = args.subjects; nSubjects = numel(subjects); sessionlist = args.sessionList; pstopts = args.psthOpts; disp(sprintf('batch processing %g subjects.',nSubjects)); for s = 1:nSubjects % load SPM Design subjectStruct{s}.dir = fullfile(args.basedir,cell2mat(subjects(s))); d = load(fullfile(subjectStruct{s}.dir,'results','SPM.mat')); subjectStruct{s}.des = d.SPM; subjectStruct{s}.name = cell2mat(subjects(s)); % load ROI look-up table map = load(fullfile(subjectStruct{s}.dir,'results','roi','coord_map.mat')); subjectStruct{s}.coords = getSubjectCoordinates(args.coords,map); %preload images disp('fetching volume definitions, please wait'); subjectStruct{s}.volumes = spm_vol(getImageFileList(subjectStruct{s}.dir,sessionlist,args.mask)); %extract voxel values [extr nExtractedVoxel] = calculateImageData(subjectStruct{s}.volumes,subjectStruct{s}.coords,args.groupingFkt); pstopts.des = subjectStruct{s}.des; pstopts.eventList = args.eventList; pstopts.sessionList = sessionlist; disp(sprintf('computing psth for %g voxel',nExtractedVoxel)); for iVoxel = 1:nExtractedVoxel rawdata = []; for iImage = 1:length(extr); tmp = extr(iImage); rawdata = [rawdata tmp.dat(iVoxel)]; end subjectStruct{s}.rawData{iVoxel} = rawdata; subjectStruct{s}.pst{iVoxel} = calculatePST(args.timeline,pstopts,rawdata); end disp(sprintf('done %g / %g',s,nSubjects)); end subjectData = subjectStruct; % assignin('base',SVMCROSSVAL_SUBJECTSTRUCT_NAME,subjectStruct); end