Mercurial > hg > octave-lyh
changeset 8976:22a7e4690742
adjust some stats funcs
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 13 Mar 2009 20:52:33 +0100 |
parents | 2e9af3363669 |
children | f464119ec165 |
files | scripts/ChangeLog scripts/statistics/base/mean.m scripts/statistics/base/meansq.m |
diffstat | 3 files changed, 18 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,8 @@ +2009-03-13 Jaroslav Hajek <highegg@gmail.com> + + * statistics/base/mean.m: Simplify. + * statistics/base/meansq.m: Optimize. + 2009-03-13 Jaroslav Hajek <highegg@gmail.com> * general/repmat.m: Use subscript pairs rather than forming Kronecker
--- a/scripts/statistics/base/mean.m +++ b/scripts/statistics/base/mean.m @@ -106,10 +106,8 @@ if (strcmp (opt, "a")) y = sum (x, dim) / n; elseif (strcmp (opt, "g")) - x(x <= 0) = NaN; - y = exp (sum (log (x), dim) / n); + y = prod (x, dim) .^ (1/n); elseif (strcmp (opt, "h")) - x(x == 0) = NaN; y = n ./ sum (1 ./ x, dim); else error ("mean: option `%s' not recognized", opt);
--- a/scripts/statistics/base/meansq.m +++ b/scripts/statistics/base/meansq.m @@ -1,5 +1,6 @@ ## Copyright (C) 1995, 1996, 1997, 1998, 2000, 2002, 2004, 2005, 2006, ## 2007 Kurt Hornik +## Copyright (C) 2009 Jaroslav Hajek ## ## This file is part of Octave. ## @@ -29,12 +30,21 @@ ## Author: KH <Kurt.Hornik@wu-wien.ac.at> ## Description: Compute mean square -function y = meansq (x, varargin) +function y = meansq (x, dim) if (nargin != 1 && nargin != 2) print_usage (); endif - y = mean (x.^2, varargin{:}); + if (nargin < 2) + t = find (size (x) != 1); + if (isempty (t)) + dim = 1; + else + dim = t(1); + endif + endif + + y = sumsq (x, dim) / size (x, dim); endfunction