Mercurial > octave-nkf
changeset 12797:71265f725b11
codesprint: Deprecate cut() function.
* deprecated/module.mk, statistics/base/module.mk: Change Automake files to
have cut.m in deprecated directory.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Sat, 16 Jul 2011 10:22:59 -0700 |
parents | 886256714823 |
children | 6fdf4927fefc |
files | NEWS scripts/deprecated/cut.m scripts/deprecated/module.mk scripts/statistics/base/cut.m scripts/statistics/base/module.mk |
diffstat | 5 files changed, 73 insertions(+), 65 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS Sat Jul 16 10:21:41 2011 -0700 +++ b/NEWS Sat Jul 16 10:22:59 2011 -0700 @@ -30,6 +30,7 @@ be removed from Octave 3.10 (or whatever version is the second major release after 3.6): + cut __error_text__ error_text is_duplicate_entry
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/deprecated/cut.m Sat Jul 16 10:22:59 2011 -0700 @@ -0,0 +1,71 @@ +## Copyright (C) 1996-2011 Kurt Hornik +## +## This file is part of Octave. +## +## Octave 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. +## +## Octave 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 Octave; see the file COPYING. If not, see +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} {} cut (@var{x}, @var{breaks}) +## Create categorical data from numerical or continuous data by +## cutting into intervals. +## +## If @var{breaks} is a scalar, the data is cut into that many +## equal-width intervals. If @var{breaks} is a vector of break points, +## the category has @code{length (@var{breaks}) - 1} groups. +## +## The returned value is a vector of the same size as @var{x} telling +## which group each point in @var{x} belongs to. Groups are labelled +## from 1 to the number of groups; points outside the range of +## @var{breaks} are labelled by @code{NaN}. +## @seealso{histc} +## @end deftypefn + +## Author: KH <Kurt.Hornik@wu-wien.ac.at> +## Description: Cut data into intervals + +function group = cut (x, breaks) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "cut is obsolete and will be removed from a future version of Octave; please use histc instead"); + endif + + if (nargin != 2) + print_usage (); + endif + + if (!isvector (x)) + error ("cut: X must be a vector"); + endif + if isscalar (breaks) + breaks = linspace (min (x), max (x), breaks + 1); + breaks(1) = breaks(1) - 1; + elseif isvector (breaks) + breaks = sort (breaks); + else + error ("cut: BREAKS must be a scalar or vector"); + endif + + group = NaN (size (x)); + m = length (breaks); + if any (k = find ((x >= min (breaks)) & (x < max (breaks)))) + n = length (k); + group(k) = sum ((ones (m, 1) * reshape (x(k), 1, n)) + >= (reshape (breaks, m, 1) * ones (1, n))); + endif + +endfunction
--- a/scripts/deprecated/module.mk Sat Jul 16 10:21:41 2011 -0700 +++ b/scripts/deprecated/module.mk Sat Jul 16 10:22:59 2011 -0700 @@ -7,6 +7,7 @@ deprecated/cellidx.m \ deprecated/clg.m \ deprecated/cquad.m \ + deprecated/cut.m \ deprecated/dispatch.m \ deprecated/fstat.m \ deprecated/gammai.m \
--- a/scripts/statistics/base/cut.m Sat Jul 16 10:21:41 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -## Copyright (C) 1996-2011 Kurt Hornik -## -## This file is part of Octave. -## -## Octave 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. -## -## Octave 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 Octave; see the file COPYING. If not, see -## <http://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {Function File} {} cut (@var{x}, @var{breaks}) -## Create categorical data from numerical or continuous data by -## cutting into intervals. -## -## If @var{breaks} is a scalar, the data is cut into that many -## equal-width intervals. If @var{breaks} is a vector of break points, -## the category has @code{length (@var{breaks}) - 1} groups. -## -## The returned value is a vector of the same size as @var{x} telling -## which group each point in @var{x} belongs to. Groups are labelled -## from 1 to the number of groups; points outside the range of -## @var{breaks} are labelled by @code{NaN}. -## @seealso{histc} -## @end deftypefn - -## Author: KH <Kurt.Hornik@wu-wien.ac.at> -## Description: Cut data into intervals - -function group = cut (x, breaks) - - if (nargin != 2) - print_usage (); - endif - - if (!isvector (x)) - error ("cut: X must be a vector"); - endif - if isscalar (breaks) - breaks = linspace (min (x), max (x), breaks + 1); - breaks(1) = breaks(1) - 1; - elseif isvector (breaks) - breaks = sort (breaks); - else - error ("cut: BREAKS must be a scalar or vector"); - endif - - group = NaN (size (x)); - m = length (breaks); - if any (k = find ((x >= min (breaks)) & (x < max (breaks)))) - n = length (k); - group(k) = sum ((ones (m, 1) * reshape (x(k), 1, n)) - >= (reshape (breaks, m, 1) * ones (1, n))); - endif - -endfunction
--- a/scripts/statistics/base/module.mk Sat Jul 16 10:21:41 2011 -0700 +++ b/scripts/statistics/base/module.mk Sat Jul 16 10:22:59 2011 -0700 @@ -6,7 +6,6 @@ statistics/base/cor.m \ statistics/base/corrcoef.m \ statistics/base/cov.m \ - statistics/base/cut.m \ statistics/base/gls.m \ statistics/base/histc.m \ statistics/base/iqr.m \