Christoph Budziszewski commited on 2009-03-18 13:53:10
Zeige 2 geänderte Dateien mit 17 Einfügungen und 12 Löschungen.
git-svn-id: https://svn.discofish.de/MATLAB/spmtoolbox/SVMCrossVal@161 83ab2cfd-5345-466c-8aeb-2b2739fb922d
| ... | ... |
@@ -1,4 +1,5 @@ |
| 1 |
-function extr = calculateImageData(filenameList, voxelList, rad) |
|
| 1 |
+function [extr voxelcount] = calculateImageData(filenameList, voxelList, rad) |
|
| 2 |
+voxelcount = 0; |
|
| 2 | 3 |
|
| 3 | 4 |
V = filenameList; |
| 4 | 5 |
|
| ... | ... |
@@ -18,6 +19,7 @@ for kImage=1:nImage |
| 18 | 19 |
vdim = tmp(7:9); |
| 19 | 20 |
vxrad = ceil((rad*ones(nVoxel,3))./(ones(nVoxel,1)*vdim))'; |
| 20 | 21 |
|
| 22 |
+ subvoxelcount = 0; |
|
| 21 | 23 |
for iVoxel = 1:nVoxel |
| 22 | 24 |
|
| 23 | 25 |
if rad==0 |
| ... | ... |
@@ -35,13 +37,16 @@ for kImage=1:nImage |
| 35 | 37 |
z = roicenter(3,iVoxel)+z(sel(:)); |
| 36 | 38 |
end; |
| 37 | 39 |
|
| 38 |
- |
|
| 39 | 40 |
dat = spm_sample_vol(V(kImage), x, y, z,0); |
| 40 | 41 |
|
| 41 |
- extr(kImage).dat(iVoxel,:) = dat; |
|
| 42 |
- extr(kImage).mean(iVoxel) = nanmean(dat); |
|
| 43 |
- extr(kImage).nvx(iVoxel) = numel(dat); |
|
| 44 |
- end; |
|
| 42 |
+ for iSubVoxel = 1:size(dat,1) |
|
| 43 |
+ subvoxelcount = subvoxelcount +1; |
|
| 44 |
+ extr(kImage).dat(subvoxelcount) = dat(iSubVoxel); |
|
| 45 |
+ end |
|
| 46 |
+% extr(kImage).mean(iVoxel) = nanmean(dat); |
|
| 47 |
+% extr(kImage).nvx(iVoxel) = numel(dat); |
|
| 48 |
+ end |
|
| 49 |
+ voxelcount = max(voxelcount,subvoxelcount); |
|
| 50 |
+end |
|
| 45 | 51 |
|
| 46 |
-end; |
|
| 47 | 52 |
end |
| 48 | 53 |
\ No newline at end of file |
| ... | ... |
@@ -21,23 +21,23 @@ function subjectData = runCoordTable(args) |
| 21 | 21 |
map = load(fullfile(subjectStruct{s}.dir,'results','roi','coord_map.mat'));
|
| 22 | 22 |
subjectStruct{s}.coords = getSubjectCoordinates(args.coords,map);
|
| 23 | 23 |
|
| 24 |
- nVoxel = size(subjectStruct{s}.coords,1);
|
|
| 24 |
+% nVoxel = size(subjectStruct{s}.coords,1);
|
|
| 25 | 25 |
|
| 26 | 26 |
disp('fetching volume definitions, please wait');
|
| 27 | 27 |
subjectStruct{s}.volumes = spm_vol(getImageFileList(subjectStruct{s}.dir,sessionlist,args.mask));
|
| 28 | 28 |
|
| 29 |
- extr = calculateImageData(subjectStruct{s}.volumes,subjectStruct{s}.coords,radius);
|
|
| 29 |
+ [extr nExtractedVoxel] = calculateImageData(subjectStruct{s}.volumes,subjectStruct{s}.coords,radius);
|
|
| 30 | 30 |
|
| 31 | 31 |
pstopts.des = subjectStruct{s}.des;
|
| 32 | 32 |
pstopts.eventList = args.eventList; |
| 33 | 33 |
pstopts.sessionList = sessionlist; |
| 34 | 34 |
|
| 35 |
- disp('computing psth');
|
|
| 36 |
- for iVoxel = 1:nVoxel |
|
| 35 |
+ disp(sprintf('computing psth for %g voxel',nExtractedVoxel));
|
|
| 36 |
+ for iVoxel = 1:nExtractedVoxel |
|
| 37 | 37 |
rawdata = []; |
| 38 | 38 |
for iImage = 1:length(extr); |
| 39 | 39 |
tmp = extr(iImage); |
| 40 |
- rawdata = [rawdata tmp.dat(iVoxel,:)]; |
|
| 40 |
+ rawdata = [rawdata tmp.dat(iVoxel)]; |
|
| 41 | 41 |
end |
| 42 | 42 |
subjectStruct{s}.rawData{iVoxel} = rawdata;
|
| 43 | 43 |
subjectStruct{s}.pst{iVoxel} = calculatePST(args.timeline,pstopts,rawdata);
|
| 44 | 44 |