Mercurial > hg > octave-lyh
changeset 6403:5011ac2fc23d
[project @ 2007-03-13 14:45:51 by jwe]
author | jwe |
---|---|
date | Tue, 13 Mar 2007 14:46:02 +0000 |
parents | fe9817a6ee98 |
children | 2005c0169e36 |
files | scripts/ChangeLog scripts/miscellaneous/cast.m |
diffstat | 2 files changed, 58 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,15 @@ +2007-03-13 John W. Eaton <jwe@octave.org> + + * miscellaneous/cast.m: Use feval and strcmp with cell to check + arg instead of switch statement. + From Søren Hauberg <soren@hauberg.org> + +2007-03-12 John W. Eaton <jwe@octave.org> + + * miscellaneous/cast.m: New function. + + * miscellaneous/delete.m: Call __go_delete__, not __uiobject_delete__. + 2007-03-08 John W. Eaton <jwe@octave.org> * miscellaneous/copyfile.m, miscellaneous/movefile.m: Perform
new file mode 100644 --- /dev/null +++ b/scripts/miscellaneous/cast.m @@ -0,0 +1,46 @@ +## Copyright (C) 2007 John W. Eaton +## +## 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 2, 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, write to the Free +## Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +## 02110-1301, USA. + +## -*- texinfo -*- +## @deftypefn {Function File} {} cast (@var{val}, @var{type}) +## Convert @var{val} to data type @var{type}. +## @seealso{int8, uint8, int16, uint16, int32, uint32, int64, uint64, double} +## @end deftypefn + +## Author: jwe + +function retval = cast (val, typ) + + if (nargin == 2) + if (ischar (typ)) + if (any (strcmp (typ, {"int8"; "uint8"; "int16"; "uint16"; + "int32"; "uint32"; "int64"; "uint64"; + "double"; "single"}))) + retval = feval (typ, val); + else + error ("cast: type name `%s' is not a built-in type", typ); + endif + else + error ("cast: expecting type name as second argument"); + endif + else + print_usage (); + endif + +endfunction