]> Creatis software - CreaPhase.git/blob - octave_packages/nnet-0.1.13/__mse.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / nnet-0.1.13 / __mse.m
1 ## Copyright (C) 2005 Michel D. Schmid  <michaelschmid@users.sourceforge.net>
2 ##
3 ##
4 ## This program is free software; you can redistribute it and/or modify it
5 ## under the terms of the GNU General Public License as published by
6 ## the Free Software Foundation; either version 2, or (at your option)
7 ## any later version.
8 ##
9 ## This program is distributed in the hope that it will be useful, but
10 ## WITHOUT ANY WARRANTY; without even the implied warranty of
11 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 ## General Public License for more details.
13 ##
14 ## You should have received a copy of the GNU General Public License
15 ## along with this program; see the file COPYING.  If not, see
16 ## <http://www.gnu.org/licenses/>.
17
18 ## -*- texinfo -*-
19 ## @deftypefn {Function File} {}@var{perf} = __mse (@var{E})
20 ## @code{__mse} returns the Mean-Square-Error of a vector E
21 ##
22 ## @example
23 ##
24 ## This function is used to calculate the network performance
25 ## @end example
26 ##
27 ## @end deftypefn
28
29 ## @seealso{__mae}
30
31 ## Author: Michel D. Schmid
32
33 function perf = __mse(E)
34
35   ## check number of inputs
36   error(nargchk(1,1,nargin));
37
38   if iscell(E)
39     perf = 0;
40     elements = 0;
41     for i=1:size(E,1)
42       for j=1:size(E,2)
43         perf = perf + sum(sum(E{i,j}.^2));
44         elements = elements + prod(size(E{i,j}));
45       endfor
46     endfor
47     perf = perf / elements;
48   else
49     error("Error vector should be a cell array!")
50   endif
51
52
53 endfunction