Browse code

starting som prediction fine-tuned class-performance visualisation

git-svn-id: https://svn.discofish.de/MATLAB/spmtoolbox/SVMCrossVal@112 83ab2cfd-5345-466c-8aeb-2b2739fb922d

Christoph Budziszewski authored on21/01/2009 16:34:25
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,107 @@
1
+function [nargin_,varargout]=vis_planeGetArgs(varargin)
2
+
3
+% VIS_PLANEGETARGS Subfunction for som_*plane: extracts topolopy 
4
+%                  information from the first arguments.
5
+%
6
+% [nargin,varargout]=vis_planeGetArgs(varargin)
7
+%
8
+%  Input and output arguments: 
9
+%   varargin   (varies) arguments given to som_*plane function
10
+%   nargin_    (scalar) number of arguments that nargchk of som_*plane "should see"
11
+%                       +number_of_varargins if varargin{1} is not map/topol struct
12
+%                       +number_of_varargins+1 if varargin{2} is a map/topol struct
13
+%   varargout  (varies) the arguments that som_*plane "should see"
14
+%
15
+% Basically, this function allows topology information to be given 
16
+% in various ways: either as a map/topology struct, or as a argument pair:
17
+% lattice, msize. The topology is always converted into the (lattice, msize)
18
+% argument pair.
19
+%  - if first input argument (varargin{1}) is a map or topol struct 
20
+%    the function extracts lattice and msize fields to two first 
21
+%    output variables after 'nargin_'. 
22
+%  - otherwise it copies the input arguments to the output arguments 
23
+%    after 'nargin_'. 
24
+% If there are too many inputs (as compared to number of outputs), the 
25
+% last ones are ignored. If too few, they are replaced by empty values 
26
+% in outputs.
27
+%
28
+% Example of usage: 
29
+%   function definition: h = som_cplane(varargin)
30
+%   first code line:     [nargin,lattice,msize,color,size,pos]=vis_planeGetArgs(varargin);
31
+%
32
+% See also SOM_CPLANE, SOM_BARPLANE, SOM_PLOTPLANE, SOM_PIEPLANE.
33
+
34
+% Copyright (c) 2000 by the SOM toolbox programming team.
35
+% http://www.cis.hut.fi/projects/somtoolbox/             
36
+
37
+% Version 2.0beta Johan 240300
38
+
39
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40
+
41
+nout=nargout-1;
42
+
43
+% Set first all varargins to contain empty (==default values in som_*plane)
44
+
45
+for i=1:nout, varargout{i}=[]; end
46
+
47
+nargin_ = nargin;
48
+% Struct: might be map or topol
49
+
50
+if isstruct(varargin{1}),
51
+
52
+  % Get topol from topol field
53
+  if isfield(varargin{1},'topol'), topol=varargin{1}.topol;
54
+  else topol=varargin{1}; % assume that this is topol struct 
55
+  end
56
+
57
+  if ~isstruct(topol),
58
+    % topol not a struct !?
59
+    warning('Field ''topol'' is not a struct.');
60
+    varargout{1}=varargin{1};
61
+    varargoutC=2;
62
+    nargin_ = nargin;
63
+  elseif ~isfield(topol,'msize') | ~isfield(topol,'lattice'),
64
+    % Field missing?!
65
+    warning('Invalid topology struct.');
66
+    varargout{1}=topol;
67
+    varargoutC=2;
68
+    nargin_ = nargin;
69
+  else
70
+    varargout{1}=topol.lattice;
71
+    varargout{2}=topol.msize;
72
+    % increment input arg. counter
73
+    varargoutC=3;
74
+    nargin_ = nargin+1;    
75
+  end
76
+
77
+elseif iscell(varargin{1}), 
78
+
79
+  c = varargin{1}; 
80
+  lattice = 'hexa'; shape = 'sheet'; msize = [1 1]; 
81
+  for i=1:length(c), 
82
+    if ischar(c{i}), 
83
+      switch c{i}, 
84
+      case {'hexa','hexaU','rect','rectU'}, lattice = c{i}; 
85
+      case {'sheet','cyl','toroid'}, shape = c{i}; 
86
+      end
87
+    else
88
+      msize = c{i}; 
89
+    end 
90
+  end
91
+  varargout{1} = lattice;
92
+  varargout{2} = msize;
93
+  varargoutC=3;
94
+  nargin_ = nargin+1;    
95
+
96
+else
97
+
98
+  % should be a lattice (string) 
99
+  varargout{1}=varargin{1};
100
+  varargoutC=2;
101
+  nargin_=nargin;
102
+
103
+end
104
+
105
+for i=2:nargin, varargout{varargoutC+i-2}=varargin{i}; end
106
+
107
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%