class def parsing added strtrunc.m
Christoph Budziszewski

Christoph Budziszewski commited on 2008-12-17 18:42:12
Zeige 4 geänderte Dateien mit 50 Einfügungen und 5 Löschungen.


git-svn-id: https://svn.discofish.de/MATLAB/spmtoolbox/SVMCrossVal@94 83ab2cfd-5345-466c-8aeb-2b2739fb922d
... ...
@@ -53,10 +51,13 @@ end
53 51
         calculateParams.svmargs         = get(paramModel.txtSVMopts,'String');
54 52
         calculateParams.sessionList     = 1:3;
55 53
 
56
-%         parseClassDef(paramModel)
57
-        calculateParams.classList       = {'<','>'};
58
-        calculateParams.labelMap        = LabelMap({'<','>','<+<','>+>','<+>','>+<'},{-2,-1,1,2,3,4});
59
-        calculateParams.eventList       = [9,11,13; 10,12,14];
54
+        classStruct = parseClassDef(paramModel);
55
+        assignin('base','classStruct',classStruct);
56
+        
57
+        calculateParams.classList       = classStruct.label; %{'<','>'};
58
+        calculateParams.labelMap        = LabelMap(classStruct.label , classStruct.value); % LabelMap({'<','>','<+<','>+>','<+>','>+<'},{-2,-1,1,2,3,4});
59
+        calculateParams.eventList       = classStruct.event; %[9,11,13; 10,12,14];
60
+        
60 61
         
61 62
         assignin('base','calculateParams',calculateParams);
62 63
         
... ...
@@ -0,0 +1,20 @@
1
+function outstruct = parseClassDef(model)
2
+outstruct = struct;
3
+txt = get(model.txtClassDef,'String');
4
+
5
+% txt =txt(find(all(isspace(txt(i,:))) ???
6
+
7
+nClasses = size(txt,1); % clear empty lines!
8
+
9
+outstruct.event = [];
10
+
11
+for i = 1:nClasses
12
+    line = txt(i,:);
13
+    delim = strfind(line,','); %first and last are real delimiter
14
+
15
+    outstruct.label{i} = strtrunc(line(1:delim(1)-1));
16
+    outstruct.event    = [outstruct.event ; eval(strtrunc(line(delim(1)+1:delim(length(delim))-1)))];
17
+    outstruct.value{i} = strtrunc(line(delim(length(delim))+1:length(line)));
18
+end
19
+
20
+end
... ...
@@ -78,6 +78,7 @@ function spm_SVMCrossVal
78 78
     set(model.txtClassDef,'HorizontalAlignment','left');
79 79
     set(model.txtClassDef,'Max',20);
80 80
     set(model.txtClassDef,'Min',0);
81
+    set(model.txtClassDef, 'FontName', 'FixedWidth')
81 82
     
82 83
     %Voxel
83 84
     nVoxelRows = 8;
... ...
@@ -88,10 +89,11 @@ function spm_SVMCrossVal
88 89
 
89 90
     lVoxelDef = createLabel(pVOXEL, [firstColumn firstRow  0.66*frameWidth controlElementHeight],'<ROI Name>,<ROI Modifier>;');
90 91
     model.txtVoxelDef = createTextField(pVOXEL,[firstColumn secondRow 0.98*frameWidth 6*controlElementHeight],...
91
-        sprintf('M1 l,\t[ 0, 0, 0];\nM1 l,\t[ 1, 0, 0];\nM1 l,\t[ 0, 1, 0];\nM1 l,\t[ 1, 0, 1];\n'));
92
+        sprintf('M1 l,\t[ 0, 0, 0];\nM1 l,\t[ 1, 0, 0];\nM1 l,\t[ 0, 1, 0];\nM1 l,\t[ 0, 0, 1];\n'));
92 93
     set(model.txtVoxelDef,'HorizontalAlignment','left');
93 94
     set(model.txtVoxelDef,'Max',20);
94 95
     set(model.txtVoxelDef,'Min',0);
96
+    set(model.txtVoxelDef, 'FontName', 'FixedWidth')
95 97
                 
96 98
     % SVM
97 99
     firstColumn  =  5.00;
... ...
@@ -0,0 +1,20 @@
1
+% function s = strtrunc(str)
2
+% s=str;
3
+% c=1
4
+% while isspace(s(c)) 
5
+%     s = s(2:length(s))
6
+% end
7
+% while isspace(s(length(s)))
8
+%     s = s(1:length(s)-1);
9
+% end
10
+% end
11
+
12
+function s = strtrunc(str)
13
+if isspace(str(1))
14
+    s = strtrunc(str(2:length(str)));
15
+elseif isspace(str(length(str)))
16
+    s = strtrunc(str(1:length(str)-1));
17
+else
18
+    s = str;
19
+end
20
+end
0 21
\ No newline at end of file
1 22