Christoph Budziszewski commited on 2009-03-16 17:26:16
Zeige 4 geänderte Dateien mit 33 Einfügungen und 17 Löschungen.
git-svn-id: https://svn.discofish.de/MATLAB/spmtoolbox/SVMCrossVal@154 83ab2cfd-5345-466c-8aeb-2b2739fb922d
| ... | ... |
@@ -5,6 +5,8 @@ switch task |
| 5 | 5 |
preprocess(model,subtask); |
| 6 | 6 |
case 'decode' |
| 7 | 7 |
decode(model,subtask); |
| 8 |
+ case 'plot' |
|
| 9 |
+ decode_plot(model,subtask); |
|
| 8 | 10 |
end |
| 9 | 11 |
end |
| 10 | 12 |
% disp('all warnings OFF')
|
| ... | ... |
@@ -101,7 +103,11 @@ end |
| 101 | 103 |
% warning('on',warn);
|
| 102 | 104 |
end |
| 103 | 105 |
|
| 104 |
-function decode_plot() |
|
| 106 |
+function decode_plot(model,type) |
|
| 107 |
+switch type |
|
| 108 |
+ case 'SIMPLE' |
|
| 109 |
+ |
|
| 110 |
+end |
|
| 105 | 111 |
end |
| 106 | 112 |
|
| 107 | 113 |
|
| ... | ... |
@@ -8,8 +8,7 @@ function subjectData = runCoordTable(args) |
| 8 | 8 |
nSubjects = numel(subjects); |
| 9 | 9 |
sessionlist = args.sessionList; |
| 10 | 10 |
|
| 11 |
- disp(sprintf('we have %g subjects. Press ANY-Key to continue.\n Use Retrun if your Keyboard lacks the ANY-Key.',nSubjects));
|
|
| 12 |
- pause |
|
| 11 |
+ disp(sprintf('batch processing %g subjects.',nSubjects));
|
|
| 13 | 12 |
|
| 14 | 13 |
for s = 1:nSubjects |
| 15 | 14 |
subjectStruct{s}.dir = fullfile(args.basedir,cell2mat(subjects(s)));
|
| ... | ... |
@@ -33,12 +33,12 @@ DEFAULT.wd = fullfile('d:','Analyze','Choice','24pilot');
|
| 33 | 33 |
|
| 34 | 34 |
task = struct; |
| 35 | 35 |
|
| 36 |
- model = struct; |
|
| 37 |
- model.baseDir = DEFAULT.wd; |
|
| 36 |
+ model1 = struct; |
|
| 37 |
+ model1.baseDir = DEFAULT.wd; |
|
| 38 | 38 |
|
| 39 |
- model.txtBaseDir = createLabel(frame,[0 0.97 1 0.03],model.baseDir); |
|
| 40 |
- set(model.txtBaseDir,'BackgroundColor','w'); |
|
| 41 |
- set(model.txtBaseDir,'ForegroundColor','b'); |
|
| 39 |
+ model1.txtBaseDir = createLabel(frame,[0 0.97 1 0.03],model1.baseDir); |
|
| 40 |
+ set(model1.txtBaseDir,'BackgroundColor','w'); |
|
| 41 |
+ set(model1.txtBaseDir,'ForegroundColor','b'); |
|
| 42 | 42 |
|
| 43 | 43 |
TASK_HEIGHT = 1-0.13; |
| 44 | 44 |
|
| ... | ... |
@@ -47,19 +47,24 @@ DEFAULT.wd = fullfile('d:','Analyze','Choice','24pilot');
|
| 47 | 47 |
set(task.preprocessing,'BackgroundColor','w'); |
| 48 | 48 |
set(task.preprocessing,'Units','normalized'); |
| 49 | 49 |
|
| 50 |
- model.selectedSubject = DEFAULT.selectedSubject; |
|
| 51 |
- model = createFirstStepPanel(model,task.preprocessing,DEFAULT); |
|
| 50 |
+ model1.selectedSubject = DEFAULT.selectedSubject; |
|
| 51 |
+ model1 = createFirstStepPanel(model1,task.preprocessing,DEFAULT); |
|
| 52 | 52 |
|
| 53 |
+ % fill with data |
|
| 54 |
+ model1 = scanDirs(model1); |
|
| 53 | 55 |
|
| 54 | 56 |
% CLASSIFICATION |
| 57 |
+ model2 = struct; |
|
| 58 |
+ |
|
| 55 | 59 |
task.classification = uipanel(frame,'Title','Classification','Position',[0 0.0 1 TASK_HEIGHT]); |
| 56 | 60 |
set(task.classification,'BackgroundColor','w'); |
| 57 |
- model = createSecondStepPanel(model,task.classification,DEFAULT); |
|
| 61 |
+ model2 = createSecondStepPanel(model2,task.classification,DEFAULT); |
|
| 58 | 62 |
|
| 59 | 63 |
% PLOT |
| 64 |
+ model3 = struct; |
|
| 60 | 65 |
task.plot = uipanel(frame,'Title','Plot','Position',[0 0.0 1 TASK_HEIGHT]); |
| 61 | 66 |
set(task.plot,'BackgroundColor','w'); |
| 62 |
- model = createVisualStepPanel(model,task.plot,DEFAULT); |
|
| 67 |
+ model3 = createVisualStepPanel(model3,task.plot,DEFAULT); |
|
| 63 | 68 |
|
| 64 | 69 |
% TASK |
| 65 | 70 |
task.taskSwitch = uipanel(frame,'Position',[0 1-0.13 1 0.10]); |
| ... | ... |
@@ -85,15 +90,18 @@ DEFAULT.wd = fullfile('d:','Analyze','Choice','24pilot');
|
| 85 | 90 |
% menu |
| 86 | 91 |
|
| 87 | 92 |
savemenu = uimenu(frame,'Label','Save/Load'); |
| 88 |
- uimenu(savemenu,'Label','Save Preprocessing Parameter','Callback',{@mcb_save,model});
|
|
| 89 |
- uimenu(savemenu,'Label','Load Preprocessing Parameter','Callback',{@mcb_load,model});
|
|
| 93 |
+ uimenu(savemenu,'Label','Save Preprocessing Parameter','Callback',{@mcb_save,model1});
|
|
| 94 |
+ uimenu(savemenu,'Label','Load Preprocessing Parameter','Callback',{@mcb_load,model1});
|
|
| 95 |
+ uimenu(savemenu,'Label','Save Decode Parameter','Callback',{@mcb_save,model2},'Enable','off');
|
|
| 96 |
+ uimenu(savemenu,'Label','Load Decode Parameter','Callback',{@mcb_load,model2},'Enable','off');
|
|
| 97 |
+ uimenu(savemenu,'Label','Save All','Callback',{@mcb_save,model1},'Enable','off');
|
|
| 98 |
+ uimenu(savemenu,'Label','Load All','Callback',{@mcb_load,model1},'Enable','off');
|
|
| 90 | 99 |
|
| 91 |
- uimenu(frame,'Label','change Study','Callback',{@mcb_cd,model},'Enable','off');
|
|
| 100 |
+ uimenu(frame,'Label','change Study','Callback',{@mcb_cd,model1},'Enable','off');
|
|
| 92 | 101 |
|
| 93 | 102 |
cbSwitchTask(0,0,'PRE',task); |
| 94 | 103 |
|
| 95 |
- % fill with data |
|
| 96 |
- model = scanDirs(model); |
|
| 104 |
+ |
|
| 97 | 105 |
set(frame,'Visible','on'); |
| 98 | 106 |
|
| 99 | 107 |
% assignin('base','model',model);
|
| ... | ... |
@@ -4,6 +4,9 @@ function decode = xsvm_subject_loop(header,subjectdata,svmopts) |
| 4 | 4 |
addpath 'libsvm-mat-2.88-1'; |
| 5 | 5 |
|
| 6 | 6 |
nSubjects = numel(subjectdata); |
| 7 |
+if(nSubjects < 2) |
|
| 8 |
+ error('SVMCrossVal:xsvmSubjectLoop:tooFewSubjects','You need at least 2 Subjects in this Across-Subject analysis!');
|
|
| 9 |
+end |
|
| 7 | 10 |
|
| 8 | 11 |
RANDOMIZE_DATAPOINTS = 0; |
| 9 | 12 |
|
| 10 | 13 |