Mercurial > hg > octave-lyh
annotate scripts/deprecated/cellidx.m @ 11188:4cb1522e4d0f
Use function handle as input to cellfun,
rather than quoted function name or anonymous function wrapper.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Wed, 03 Nov 2010 17:20:56 -0700 |
parents | 95c3e38098bf |
children | fd0a3ac60b0e |
rev | line source |
---|---|
8920 | 1 ## Copyright (C) 2000, 2004, 2005, 2006, 2007, 2008, 2009 |
7989
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
2 ## Auburn University. All rights reserved. |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
3 ## |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
4 ## This file is part of Octave. |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
5 ## |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
6 ## Octave program is free software; you can redistribute it and/or modify it |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
7 ## under the terms of the GNU General Public License as published by |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
8 ## the Free Software Foundation; either version 3 of the License, or (at |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
9 ## your option) any later version. |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
10 ## |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
11 ## Octave program is distributed in the hope that it will be useful, but |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
14 ## General Public License for more details. |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
15 ## |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
16 ## You should have received a copy of the GNU General Public License |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
17 ## along with Octave; see the file COPYING. If not, see |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
18 ## <http://www.gnu.org/licenses/>. |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
19 |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
20 ## -*- texinfo -*- |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
21 ## @deftypefn {Function File} {[@var{idxvec}, @var{errmsg}] =} cellidx (@var{listvar}, @var{strlist}) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
22 ## Return indices of string entries in @var{listvar} that match strings |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
23 ## in @var{strlist}. |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
24 ## |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
25 ## Both @var{listvar} and @var{strlist} may be passed as strings or |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
26 ## string matrices. If they are passed as string matrices, each entry |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
27 ## is processed by @code{deblank} prior to searching for the entries. |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
28 ## |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
29 ## The first output is the vector of indices in @var{listvar}. |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
30 ## |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
31 ## If @var{strlist} contains a string not in @var{listvar}, then |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
32 ## an error message is returned in @var{errmsg}. If only one output |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
33 ## argument is requested, then @var{cellidx} prints @var{errmsg} to the |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
34 ## screen and exits with an error. |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
35 ## @end deftypefn |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
36 |
9868 | 37 ## deprecated in version 3.4 |
38 | |
7989
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
39 function [idxvec,errmsg] = cellidx (listvar, strlist) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
40 |
9868 | 41 persistent warned = false; |
42 if (! warned) | |
43 warned = true; | |
44 warning ("Octave:deprecated-function", | |
45 "cellidx is obsolete and will be removed from a future version of Octave; use ismember instead."); | |
46 endif | |
47 | |
7989
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
48 if (nargin != 2) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
49 print_usage (); |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
50 endif |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
51 |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
52 if (ischar (strlist)) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
53 tmp = strlist; |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
54 strlist = {}; |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
55 for kk = 1:rows(tmp) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
56 strlist{kk} = deblank (tmp(kk,:)); |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
57 endfor |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
58 endif |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
59 |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
60 if (ischar (listvar)) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
61 tmp = listvar; |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
62 listvar = {}; |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
63 for kk = 1:rows(tmp) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
64 listvar{kk} = deblank (tmp(kk,:)); |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
65 endfor |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
66 endif |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
67 |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
68 ## initialize size of idxvec (for premature return) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
69 idxvec = zeros (length(strlist), 1); |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
70 |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
71 errmsg = ""; |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
72 if (! iscellstr (listvar)) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
73 errmsg = "listvar must be a list of strings"; |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
74 elseif (! iscellstr (strlist)) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
75 errmsg = "strlist must be a list of strings"; |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
76 endif |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
77 |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
78 if (length (errmsg)) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
79 if (nargout < 2) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
80 error (errmsg); |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
81 else |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
82 return; |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
83 endif |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
84 endif |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
85 |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
86 nsigs = length(listvar); |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
87 for idx = 1:length(strlist) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
88 signame = strlist{idx}; |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
89 for jdx = 1:nsigs |
8507 | 90 if (strcmp (signame, listvar{jdx})) |
10549 | 91 if (idxvec(idx) != 0) |
92 warning ("Duplicate signal name %s (%d,%d)\n", | |
93 listvar{jdx}, jdx, idxvec(idx)); | |
94 else | |
95 idxvec(idx) = jdx; | |
96 endif | |
7989
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
97 endif |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
98 endfor |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
99 if (idxvec(idx) == 0) |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
100 errmsg = sprintf ("Did not find %s", signame); |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
101 if (nargout == 1) |
10549 | 102 error (errmsg); |
7989
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
103 else |
10549 | 104 break; |
7989
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
105 endif |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
106 endif |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
107 endfor |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
108 |
23c248d415b5
Various doc fixes. Readd cellidx
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
109 endfunction |