291ee33de61fc5cd44c4afa4a86ca3bc077532b8
Christoph Budziszewski gui layout finished

Christoph Budziszewski authored 15 years ago

1) function classify(varargin)
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

2) 
Christoph Budziszewski gui layout finished

Christoph Budziszewski authored 15 years ago

3) switch nargin
4)     case 0
5)         action = 'decode';
6)         SubjectID = 'JZ006';
7)     case 1
8)         action = 'decode';
9)         paramModel = varargin{1};
Christoph Budziszewski fixed: parseVoxelList empty...

Christoph Budziszewski authored 15 years ago

10)         SubjectID = getSubjectIDString(paramModel);
Christoph Budziszewski gui layout finished

Christoph Budziszewski authored 15 years ago

11)     otherwise
12)         error('spmtoolbox:SVMCrossVal:arginError','Please Specify action and parameter model');
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

13) end
14) 
Christoph Budziszewski gui layout finished

Christoph Budziszewski authored 15 years ago

15)     
16) 
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

17)     switch(action)
18)     case 'clear'
19)         evalin('base','clear map lm SPM classList dataTimeLine decodeTable labelTimeLine svmopts trialProtocol voxelList xTimeEnd xTimeStart xTimeWindow');
20)       
21)     case 'decode'
Christoph Budziszewski GUI parsing halfway done.

Christoph Budziszewski authored 15 years ago

22)         
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

23)         display('loading SPM.mat');
Christoph Budziszewski gui layout finished

Christoph Budziszewski authored 15 years ago

24) %         SubjectID = 'JZ006';
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

25) %         SubjectID = 'AI020';
26) %         SubjectID = 'HG027';
27)         spm = load(fullfile('D:\Analyze\Choice\24pilot',SubjectID,'results\SPM.mat'));
28) 
29)         display('done.');
Christoph Budziszewski GUI parsing halfway done.

Christoph Budziszewski authored 15 years ago

30)         
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

31)         params = struct;
32)         params.nClasses = 2;
33) 
Christoph Budziszewski killed unnecessary assignin...

Christoph Budziszewski authored 15 years ago

34) %         assignin('base','params',params);
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

35)         %% calculate
36)         display('calculating cross-validation performance time-shift');
37)         calculateParams  = struct;
38)         
39)         calculateParams.des             = spm.SPM;
Christoph Budziszewski GUI parsing halfway done.

Christoph Budziszewski authored 15 years ago

40)         
Christoph Budziszewski killed unnecessary assignin...

Christoph Budziszewski authored 15 years ago

41)         calculateParams.smoothed        = getDouble(paramModel.txtSmoothed);
42)         
Christoph Budziszewski GUI parsing halfway done.

Christoph Budziszewski authored 15 years ago

43)         calculateParams.frameShiftStart = getDouble(paramModel.txtFrameShiftStart);  % -20;
44)         calculateParams.frameShiftEnd   = getDouble(paramModel.txtFrameShiftEnd); %15;
45)         calculateParams.decodeDuration  = getDouble(paramModel.txtFrameShiftDur);
46)         calculateParams.psthStart       = getDouble(paramModel.txtPSTHStart); % -25;
47)         calculateParams.psthEnd         = getDouble(paramModel.txtPSTHEnd); % 20;
48)         calculateParams.baselineStart   = getDouble(paramModel.txtBaselineStart); % -22;
49)         calculateParams.baselineEnd     = getDouble(paramModel.txtBaselineEnd); % -20;
50) 
Christoph Budziszewski class def parsing added str...

Christoph Budziszewski authored 15 years ago

51)         calculateParams.voxelList       = parseVoxelList(paramModel);
Christoph Budziszewski GUI parsing halfway done.

Christoph Budziszewski authored 15 years ago

52) 
53)         calculateParams.svmargs         = get(paramModel.txtSVMopts,'String');
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

54)         calculateParams.sessionList     = 1:3;
Christoph Budziszewski GUI parsing halfway done.

Christoph Budziszewski authored 15 years ago

55) 
Christoph Budziszewski class def parsing added str...

Christoph Budziszewski authored 15 years ago

56)         classStruct = parseClassDef(paramModel);
Christoph Budziszewski killed unnecessary assignin...

Christoph Budziszewski authored 15 years ago

57) %         assignin('base','classStruct',classStruct);
Christoph Budziszewski class def parsing added str...

Christoph Budziszewski authored 15 years ago

58)         
59)         calculateParams.classList       = classStruct.label; %{'<','>'};
60)         calculateParams.labelMap        = LabelMap(classStruct.label , classStruct.value); % LabelMap({'<','>','<+<','>+>','<+>','>+<'},{-2,-1,1,2,3,4});
61)         calculateParams.eventList       = classStruct.event; %[9,11,13; 10,12,14];
62)         
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

63)         
64)         assignin('base','calculateParams',calculateParams);
65)         
66) %         [decodeTable rawTimeCourse] = calculateDecodePerformance(spm,params.frameShiftStart,params.frameShiftEnd,params.xTimeWindow,params.svmopts,1:4,params.sessionList,params.voxelList,params.classList,params.labelMap,params.normalize);
67)         decode = calculateDecodePerformance(calculateParams);
68)         display(sprintf('Min CrossVal Accuracy: %g%% \t Max CrossVal Accuracy: %g%%',decode.minPerformance,decode.maxPerformance));
69)         
70)         assignin('base','decode',decode);
71) 
72)         display('Finished calculations.');
73)         display('Plotting.');
74) 
75)         plotParams = struct;
76)         plotParams.psthStart = calculateParams.psthStart;
77)         plotParams.psthEnd   = calculateParams.psthEnd;
78)         plotParams.nClasses  = length(calculateParams.classList);
79)         plotParams.frameShiftStart   = calculateParams.frameShiftStart;
80)         plotParams.frameShiftEnd     = calculateParams.frameShiftEnd;
81)         plotParams.decodePerformance = decode.decodePerformance;
82)         plotParams.rawTimeCourse     = decode.rawTimeCourse;
83)         plotParams.SubjectID         = SubjectID;
Christoph Budziszewski killed unnecessary assignin...

Christoph Budziszewski authored 15 years ago

84)         plotParams.smoothed          = calculateParams.smoothed;
Christoph Budziszewski SVMCrossVal toolbox init

Christoph Budziszewski authored 15 years ago

85)         
86)         assignin('base','plotParams',plotParams);
87) %         plotDecodePerformance(params.psthStart,params.psthEnd,params.nClasses,decode.decodeTable,params.frameShiftStart,params.frameShiftEnd,decode.rawTimeCourse);
88)         plotDecodePerformance(plotParams);
89) 
90)     otherwise
Christoph Budziszewski gui layout finished

Christoph Budziszewski authored 15 years ago

91)         display('give action command: clear decode');