X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=octave_packages%2Fnnet-0.1.13%2Fpoststd.m;fp=octave_packages%2Fnnet-0.1.13%2Fpoststd.m;h=ec4685c316fa61553e2d61068649f11ce1d1f42f;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hp=0000000000000000000000000000000000000000;hpb=1705066eceaaea976f010f669ce8e972f3734b05;p=CreaPhase.git diff --git a/octave_packages/nnet-0.1.13/poststd.m b/octave_packages/nnet-0.1.13/poststd.m new file mode 100644 index 0000000..ec4685c --- /dev/null +++ b/octave_packages/nnet-0.1.13/poststd.m @@ -0,0 +1,80 @@ +## Copyright (C) 2006 Michel D. Schmid +## +## +## This program is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2, or (at your option) +## any later version. +## +## This program is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {}[@var{Pp},@var{Tt}] = poststd(@var{Pn},@var{meanp},,@var{stdP},@var{Tn},@var{meanT},@var{stdT}) +## @code{poststd} postprocesses the data which has been preprocessed by @code{prestd}. +## @end deftypefn + +## @seealso{prestd,trastd} + +## Author: Michel D. Schmid + +function [Pp,Tt] = poststd(Pn,meanp,stdp,Tn,meant,stdt) + + ## check range of input arguments + error(nargchk(3,6,nargin)) + if (nargin==4) + error("4 input arguments are not allowed!"); + endif + if (nargin==5) + error("5 input arguments are not allowed!"); + endif + + ## do first inputs + ## set all standard deviations which are zero to 1 + [nRowsII, nColumnsII] = size(Pn); + rowZeros = zeros(nRowsII,1); + findZeros = find(stdp==0); + rowZeros(findZeros)=1; + nequal = !rowZeros; + if (sum(rowZeros) != 0) + warning("Some standard deviations are zero. Those inputs won't be transformed."); + meanpZero = meanp.*nequal; + stdpZero = stdp.*nequal + 1*rowZeros; + else + meanpZero = meanp; + stdpZero = stdp; + endif + + ## calculate the postprocessed inputs + nColumnsIIone = ones(1,nColumnsII); + Pp = (stdpZero*nColumnsIIone).*Pn + meanpZero*nColumnsIIone; + + ## do also targets + if ( nargin==6 ) + # now set all standard deviations which are zero to 1 + [nRowsIII, nColumnsIII] = size(stdt); + rowZeros = zeros(nRowsIII,1); + findZeros = find(stdt==0); + rowZeros(findZeros)=1; + nequal = !rowZeros; + if (sum(rowZeros) != 0) + warning("Some standard deviations are zero. Those targets won't be transformed."); + meantZero = meant.*nequal; + stdtZero = stdt.*nequal + 1*rowZeros; + else + meantZero = meant; + stdtZero = stdt; + endif + + ## calculate the postprocessed targets + nColumnsIIIone = ones(1,nColumnsIII); + Tt = (stdtZero*nColumnsIIIone).*Tn + meantZero*nColumnsIIIone; + endif + +endfunction \ No newline at end of file