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 \