Mercurial > forge
view main/nnet/inst/trastd.m @ 11265:4d56b549b185 octave-forge
maint: update Michel D. Schmid e-mail
author | carandraug |
---|---|
date | Sat, 24 Nov 2012 22:16:49 +0000 |
parents | 73c74436563f |
children |
line wrap: on
line source
## Copyright (C) 2005 Michel D. Schmid <michael.schmid@plexso.com> ## ## 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 3 of the License, 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; if not, see <http://www.gnu.org/licenses/>. ## -*- 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