X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fnan-2.5.5%2Fgeomean.m;fp=octave_packages%2Fnan-2.5.5%2Fgeomean.m;h=449c37717c58a238cb20303cb22bd8339d54c68c;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/nan-2.5.5/geomean.m b/octave_packages/nan-2.5.5/geomean.m new file mode 100644 index 0000000..449c377 --- /dev/null +++ b/octave_packages/nan-2.5.5/geomean.m @@ -0,0 +1,53 @@ +function [y] = geomean(x,DIM,W) +% GEOMEAN calculates the geomentric mean of data elements. +% +% y = geomean(x [,DIM [,W]]) is the same as +% y = mean(x,'G' [,DIM]) +% +% DIM dimension +% 1 STD of columns +% 2 STD of rows +% default or []: first DIMENSION, with more than 1 element +% W weights to compute weighted mean (default: []) +% if W=[], all weights are 1. +% number of elements in W must match size(x,DIM) +% +% features: +% - can deal with NaN's (missing values) +% - weighting of data +% - dimension argument also in Octave +% - compatible to Matlab and Octave +% +% see also: SUMSKIPNAN, MEAN, HARMMEAN +% +% 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 . + + +% $Id: geomean.m 8223 2011-04-20 09:16:06Z schloegl $ +% Copyright (C) 2000-2002,2009 by Alois Schloegl +% This is part of the NaN-toolbox. For more details see +% http://pub.ist.ac.at/~schloegl/matlab/NaN/ + + +if nargin<2 + DIM=min(find(size(x)>1)); + if isempty(DIM), DIM=1; end; +end +if nargin<3 + W = []; +end; + +[y, n] = sumskipnan(log(x),DIM,W); +y = exp (y./n); +