Mercurial > hg > octave-nkf
diff scripts/statistics/base/std.m @ 8977:f464119ec165
further simplify some stats funcs
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 13 Mar 2009 21:26:13 +0100 |
parents | eb63fbe60fab |
children | 1bf0ce0930be |
line wrap: on
line diff
--- a/scripts/statistics/base/std.m +++ b/scripts/statistics/base/std.m @@ -76,19 +76,13 @@ opt = 0; endif - sz = size(a); - if (sz (dim) == 1) - retval = zeros(sz); + n = size (a, dim); + if (n == 1) + retval = zeros (sz); elseif (numel (a) > 0) - rng = ones (1, length (sz)); - rng (dim) = sz (dim); - if (opt == 0) - retval = sqrt (sumsq (a - repmat(mean (a, dim), rng), dim) / (sz(dim) - 1)); - else - retval = sqrt (sumsq (a - repmat(mean (a, dim), rng), dim) / sz(dim)); - endif + retval = sqrt (sumsq (center (a, dim), dim) / (n + opt - 1)); else - error ("std: invalid matrix argument"); + error ("std: x must not be empty"); endif endfunction