Mercurial > hg > octave-lyh
changeset 10694:d97165928d05
implement built-in vec()
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Thu, 10 Jun 2010 08:20:39 +0200 |
parents | d95a6e491a6c |
children | 701b969db6a3 |
files | scripts/ChangeLog scripts/linear-algebra/module.mk scripts/linear-algebra/vec.m src/ChangeLog src/data.cc |
diffstat | 5 files changed, 42 insertions(+), 49 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,8 @@ +2010-06-10 Jaroslav Hajek <highegg@gmail.com> + + * linear-algebra/vec.m: Remove (make built-in). + * linear-algebra/module.mk: Update. + 2010-06-09 Rik <octave@nomad.inbox5.com> * general/flipdim.m, general/accumdim.m: Use > 1 test to find
--- a/scripts/linear-algebra/module.mk +++ b/scripts/linear-algebra/module.mk @@ -24,7 +24,6 @@ linear-algebra/rref.m \ linear-algebra/subspace.m \ linear-algebra/trace.m \ - linear-algebra/vec.m \ linear-algebra/vech.m FCN_FILES += $(linear_algebra_FCN_FILES)
deleted file mode 100644 --- a/scripts/linear-algebra/vec.m +++ /dev/null @@ -1,48 +0,0 @@ -## Copyright (C) 1995, 1996, 1999, 2000, 2002, 2004, 2005, 2006, 2007, 2008 -## 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} {} vec (@var{x}) -## Return the vector obtained by stacking the columns of the matrix @var{x} -## one above the other. -## @end deftypefn - -## See Magnus and Neudecker (1988), Matrix differential calculus with -## applications in statistics and econometrics. - -## Author: KH <Kurt.Hornik@wu-wien.ac.at> -## Created: 8 May 1995 -## Adapted-By: jwe - -function v = vec (x) - - if (nargin != 1) - print_usage (); - endif - - v = x(:); - -endfunction - -%!assert(vec ([1, 2; 3, 4]) == [1; 3; 2; 4] && vec ([1, 3, 2, 4]) == [1; 3; 2; 4]); - -%!error vec (); - -%!error vec (1, 2); -
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2010-06-10 Jaroslav Hajek <highegg@gmail.com> + + * data.cc (Fvec): New DEFUN. + 2010-06-09 Jaroslav Hajek <highegg@gmail.com> * data.cc (Freshape): Use octave_idx_type rather than int.
--- a/src/data.cc +++ b/src/data.cc @@ -4433,6 +4433,39 @@ */ +DEFUN (vec, args, , + "-*- texinfo -*-\n\ +@deftypefn {Built-in Function} {} vec (@var{x})\n\ +Return the vector obtained by stacking the columns of the matrix @var{x}\n\ +one above the other. Equivalent to @code{@var{x}(:)}. Useful for functional\n\ +programming.\n\ +@end deftypefn") +{ + octave_value retval; + + if (args.length () == 1) + { + octave_value colon (octave_value::magic_colon_t); + octave_value arg = args(0); + retval = arg.single_subsref ("(", colon); + } + else + print_usage (); + + return retval; +} + +/* + +%!assert(vec ([1, 2; 3, 4]), [1; 3; 2; 4]) +%!assert(vec ([1, 3, 2, 4]) == [1; 3; 2; 4]); + +%!error vec (); + +%!error vec (1, 2); + +*/ + DEFUN (squeeze, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} squeeze (@var{x})\n\