X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fnnet-0.1.13%2Ftrastd.m;fp=octave_packages%2Fnnet-0.1.13%2Ftrastd.m;h=d4e0a2e31397ef97a5142fc06cd654691431b393;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/nnet-0.1.13/trastd.m b/octave_packages/nnet-0.1.13/trastd.m new file mode 100644 index 0000000..d4e0a2e --- /dev/null +++ b/octave_packages/nnet-0.1.13/trastd.m @@ -0,0 +1,91 @@ +## Copyright (C) 2005 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{pn} = trastd (@var{p},@var{meanp},@var{stdp}) +## @code{trastd} preprocess additional data for neural network simulation. +## +## @example +## @code{p} : test input data +## @code{meanp}: vector with standardization parameters of prestd(...) +## @code{stdp} : vector with standardization parameters of prestd(...) +## +## meanp = [2.5; 6.5]; +## stdp = [1.2910; 1.2910]; +## p = [1 4; 2 5]; +## +## pn = trastd(p,meanp,stdp); +## @end example +## @noindent +## @end deftypefn + +## @seealso{prestd, poststd} + +## Author: Michel D. Schmid + +function [Pn] = trastd(Pp,meanp,stdp) + + ## check number of inputs + error(nargchk(3,3,nargin)); + + + [nRows,nColumns]=size(Pp); + rowOnes = ones(1,nColumns); + + ## now set all standard deviations which are zero to 1 + [nRowsII, nColumnsII] = size(stdp); + rowZeros = zeros(nRowsII,1); + findZeros = find(stdp==0); + rowZeros(findZeros)=1; + equal = rowZeros; + nequal = !equal; + if ( sum(equal) != 0 ) + warning("Some standard deviations are zero. Those inputs won't be transformed."); + meanp = meanp.*nequal; + stdp = stdp.*nequal + 1*equal; + end + + Pn = (Pp-meanp*rowOnes)./(stdp*rowOnes); + +endfunction + +## +## >> mInput = [1 2 3 4; 5 6 7 8] +## +## mInput = +## +## 1 2 3 4 +## 5 6 7 8 +## +## >> [pn,meanp,stdp] = prestd(mInput) +## +## pn = +## +## -1.1619 -0.3873 0.3873 1.1619 +## -1.1619 -0.3873 0.3873 1.1619 +## +## +## meanp = +## +## 2.5000 +## 6.5000 +## +## +## stdp = +## +## 1.2910 +## 1.2910 \ No newline at end of file