]> Creatis software - CreaPhase.git/blob - octave_packages/fixed-0.7.10/create_lookup_table.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / fixed-0.7.10 / create_lookup_table.m
1 ## Copyright (C) 2003  Motorola Inc
2 ## Copyright (C) 2003  David Bateman
3 ##
4 ## This program is free software; you can redistribute it and/or modify
5 ## it under the terms of the GNU General Public License as published by
6 ## the Free Software Foundation; either version 2 of the License, or
7 ## (at your option) any later version.
8 ##
9 ## This program is distributed in the hope that it will be useful,
10 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 ## GNU General Public License for more details.
13 ##
14 ## You should have received a copy of the GNU General Public License
15 ## along with this program; If not, see <http://www.gnu.org/licenses/>.
16
17 ## -*- texinfo -*-
18 ## @deftypefn {Function File} {@var{table} =} create_lookup_table (@var{x}, @var{y})
19 ## Creates a lookup table betwen the vectors @var{x} and @var{y}. If @var{x}
20 ## is not in increasing order, the vectors are sorted before being stored.
21 ## @end deftypefn
22
23 function table = create_lookup_table (x, y)
24   if any(size(x) != size(y))
25     error("create_lookup_table: tables must have the same dimension");
26   elseif ! isvector(x)
27     error("create_lookup_table: tables must be vectors");
28   else
29     ## This assumes that fsort is overloading sort for fixed point types
30     [table.x, idx] = sort(x);
31     table.y = y(idx);
32   endif
33 endfunction