Mercurial > hg > octave-lyh
diff scripts/statistics/median.m @ 4:b4df021f796c
[project @ 1993-08-08 01:26:08 by jwe]
Initial revision
author | jwe |
---|---|
date | Sun, 08 Aug 1993 01:26:08 +0000 |
parents | |
children | 16a24e76d6e0 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/scripts/statistics/median.m @@ -0,0 +1,38 @@ +function retval = median (a) + +# usage: median (a) +# +# For vector arguments, return the median of the values. +# +# For matrix arguments, return a row vector containing the median for +# each column. +# +# See also: std, mean + + if (nargin != 1) + error ("usage: medain (a)"); + endif + + [nr, nc] = size (a); + s = sort (a); + if (nr == 1 && nc > 0) + if (rem (nc, 2) == 0) + i = nc/2; + retval = (s (i) + s (i+1)) / 2; + else + i = ceil (nc/2); + retval = s (i); + endif + elseif (nr > 0 && nc > 0) + if (rem (nr, 2) == 0) + i = nr/2; + retval = (s (i,:) + s (i+1,:)) / 2; + else + i = ceil (nr/2); + retval = s (i,:); + endif + else + error ("median: invalid matrix argument"); + endif + +endfunction