function [extr xx yy zz] = calculateRoiImageData(filenameList,roiImageList) V = filenameList; nImage = numel(V); Vm = roiImageList; nRoi = numel(Vm); for kImage=1:nImage x = []; y = []; z = []; dat = []; for iRoiFile = 1:nRoi [x1 y1] = ndgrid(1:V(kImage).dim(1),1:V(kImage).dim(2)); for p = 1:V(kImage).dim(3) % resample mask Vm(i) in space of V(k) B = spm_matrix([0 0 -p 0 0 0 1 1 1]); M = inv(B*inv(V(kImage).mat)*Vm(iRoiFile).mat); msk = find(spm_slice_vol(Vm(iRoiFile),M,V(kImage).dim(1:2),0)); if ~isempty(msk) z1 = p*ones(size(msk(:))); x = [x; x1(msk(:))]; y = [y; y1(msk(:))]; z = [z; z1]; end end dat = [dat spm_sample_vol(V(kImage), x, y, z,0)]; if kImage == 1 % sample coordinates from first image xx = x; yy = y; zz = z; end end extr(kImage).dat = dat; end end