Mercurial > hg > octave-nkf
annotate scripts/set/setxor.m @ 20770:c1a6c31ac29a
eliminate more simple uses of error_state
* ov-classdef.cc: Eliminate simple uses of error_state.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 06 Oct 2015 00:20:02 -0400 |
parents | c3b2ec6a1586 |
children |
rev | line source |
---|---|
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19349
diff
changeset
|
1 ## Copyright (C) 2014-2015 Julien Bect |
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19349
diff
changeset
|
2 ## Copyright (C) 2008-2015 Jaroslav Hajek |
11523 | 3 ## Copyright (C) 2000, 2006-2007 Paul Kienzle |
5825 | 4 ## |
5 ## This file is part of Octave. | |
6 ## | |
7 ## Octave is free software; you can redistribute it and/or modify it | |
12849
e0a58c741996
codesprint: Reformat setxor's docstring
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
11587
diff
changeset
|
8 ## under the terms of the GNU General Public License as published by the |
e0a58c741996
codesprint: Reformat setxor's docstring
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
11587
diff
changeset
|
9 ## Free Software Foundation; either version 3 of the License, or (at |
7016 | 10 ## your option) any later version. |
5825 | 11 ## |
12849
e0a58c741996
codesprint: Reformat setxor's docstring
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
11587
diff
changeset
|
12 ## Octave is distributed in the hope that it will be useful, but WITHOUT |
e0a58c741996
codesprint: Reformat setxor's docstring
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
11587
diff
changeset
|
13 ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
e0a58c741996
codesprint: Reformat setxor's docstring
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
11587
diff
changeset
|
14 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
e0a58c741996
codesprint: Reformat setxor's docstring
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
11587
diff
changeset
|
15 ## for more details. |
5825 | 16 ## |
17 ## You should have received a copy of the GNU General Public License | |
7016 | 18 ## along with Octave; see the file COPYING. If not, see |
19 ## <http://www.gnu.org/licenses/>. | |
5825 | 20 |
21 ## -*- texinfo -*- | |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
22 ## @deftypefn {Function File} {@var{c} =} setxor (@var{a}, @var{b}) |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
23 ## @deftypefnx {Function File} {@var{c} =} setxor (@var{a}, @var{b}, "rows") |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
24 ## @deftypefnx {Function File} {[@var{c}, @var{ia}, @var{ib}] =} setxor (@dots{}) |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
25 ## |
20183
72ccbd36e23c
Return a column vector by default for Matlab compatibility (bug #44425, bug #44453).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
26 ## Return the unique elements exclusive to sets @var{a} or @var{b} sorted in |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
27 ## ascending order. |
5825 | 28 ## |
20183
72ccbd36e23c
Return a column vector by default for Matlab compatibility (bug #44425, bug #44453).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
29 ## If @var{a} and @var{b} are both row vectors then return a row vector; |
72ccbd36e23c
Return a column vector by default for Matlab compatibility (bug #44425, bug #44453).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
30 ## Otherwise, return a column vector. The inputs may also be cell arrays of |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
31 ## strings. |
5825 | 32 ## |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
33 ## If the optional input @qcode{"rows"} is given then return the rows exclusive |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
34 ## to sets @var{a} and @var{b}. The inputs must be 2-D matrices to use this |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
35 ## option. |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
36 ## |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
37 ## If requested, return index vectors @var{ia} and @var{ib} such that |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
38 ## @code{@var{a}(@var{ia})} and @code{@var{b}(@var{ib})} are disjoint sets |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
39 ## whose union is @var{c}. |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
40 ## |
5825 | 41 ## @seealso{unique, union, intersect, setdiff, ismember} |
42 ## @end deftypefn | |
43 | |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
44 function [c, ia, ib] = setxor (a, b, varargin) |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
45 |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
46 if (nargin < 2 || nargin > 3) |
6046 | 47 print_usage (); |
5825 | 48 endif |
49 | |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
50 [a, b] = validsetargs ("setxor", a, b, varargin{:}); |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
51 |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
52 by_rows = nargin == 3; |
20647
c3b2ec6a1586
Remove redundant isvector() calls in set/ functions.
Rik <rik@octave.org>
parents:
20183
diff
changeset
|
53 isrowvec = isrow (a) && isrow (b); |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
54 |
5825 | 55 ## Form A and B into sets. |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
56 if (nargout > 1) |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
57 [a, ia] = unique (a, varargin{:}); |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
58 [b, ib] = unique (b, varargin{:}); |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
59 else |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
60 a = unique (a, varargin{:}); |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
61 b = unique (b, varargin{:}); |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
62 endif |
5825 | 63 |
64 if (isempty (a)) | |
65 c = b; | |
66 elseif (isempty (b)) | |
67 c = a; | |
68 else | |
69 ## Reject duplicates. | |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
70 if (by_rows) |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
71 na = rows (a); nb = rows (b); |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
72 [c, i] = sortrows ([a; b]); |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
73 n = rows (c); |
18081
42df174ec2ff
setxor.m: Fix bug when "rows" argument given (bug #40808).
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
74 idx = find (all (c(1:n-1, :) == c(2:n, :), 2)); |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
75 if (! isempty (idx)) |
10549 | 76 c([idx, idx+1],:) = []; |
77 i([idx, idx+1],:) = []; | |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
78 endif |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
79 else |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
80 na = numel (a); nb = numel (b); |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
81 [c, i] = sort ([a(:); b(:)]); |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
82 n = length (c); |
9481
a3ae7abaf659
support cellstrs in setxor
Pieter Eendebak <pieter.eendebak@gmail.com>
parents:
9051
diff
changeset
|
83 if (iscell (c)) |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
84 idx = find (strcmp (c(1:n-1), c(2:n))); |
9481
a3ae7abaf659
support cellstrs in setxor
Pieter Eendebak <pieter.eendebak@gmail.com>
parents:
9051
diff
changeset
|
85 else |
a3ae7abaf659
support cellstrs in setxor
Pieter Eendebak <pieter.eendebak@gmail.com>
parents:
9051
diff
changeset
|
86 idx = find (c(1:n-1) == c(2:n)); |
a3ae7abaf659
support cellstrs in setxor
Pieter Eendebak <pieter.eendebak@gmail.com>
parents:
9051
diff
changeset
|
87 endif |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
88 if (! isempty (idx)) |
10549 | 89 c([idx, idx+1]) = []; |
90 i([idx, idx+1]) = []; | |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
91 endif |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
92 |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
93 ## Adjust output orientation for Matlab compatibility |
20183
72ccbd36e23c
Return a column vector by default for Matlab compatibility (bug #44425, bug #44453).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
94 if (isrowvec) |
10549 | 95 c = c.'; |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
96 endif |
5825 | 97 endif |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
98 |
19349
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
99 if (nargout > 1) |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
100 ia = ia(i(i <= na)); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
101 ib = ib(i(i > na) - na); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
102 endif |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
103 endif |
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
104 |
5825 | 105 endfunction |
106 | |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14359
diff
changeset
|
107 |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
108 %!assert (setxor ([1,2,3], [2,3,4]), [1,4]) |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14359
diff
changeset
|
109 %!assert (setxor ({'a'}, {'a', 'b'}), {'b'}) |
18081
42df174ec2ff
setxor.m: Fix bug when "rows" argument given (bug #40808).
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
110 |
7920
e56bb65186f6
improve set functions for Matlab compatibility
Jaroslav Hajek <highegg@gmail.com>
parents:
7017
diff
changeset
|
111 %!test |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
112 %! a = [3, 1, 4, 1, 5]; |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
113 %! b = [1, 2, 3, 4]; |
18081
42df174ec2ff
setxor.m: Fix bug when "rows" argument given (bug #40808).
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
114 %! [c, ia, ib] = setxor (a, b.'); |
20183
72ccbd36e23c
Return a column vector by default for Matlab compatibility (bug #44425, bug #44453).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
115 %! assert (c, [2; 5]); |
72ccbd36e23c
Return a column vector by default for Matlab compatibility (bug #44425, bug #44453).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
116 %! assert (c, sort ([a(ia)'; b(ib)'])); |
9498
f7cc8f30f3b8
Added test for setxor
Pieter Eendebak <pieter.eendebak@gmail.com>
parents:
9481
diff
changeset
|
117 |
18081
42df174ec2ff
setxor.m: Fix bug when "rows" argument given (bug #40808).
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
118 %!test |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
119 %! a = [1 2; 4 5; 1 3]; |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
120 %! b = [1 1; 1 2; 4 5; 2 10]; |
18081
42df174ec2ff
setxor.m: Fix bug when "rows" argument given (bug #40808).
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
121 %! [c, ia, ib] = setxor (a, b, "rows"); |
42df174ec2ff
setxor.m: Fix bug when "rows" argument given (bug #40808).
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
122 %! assert (c, [1 1; 1 3; 2 10]); |
42df174ec2ff
setxor.m: Fix bug when "rows" argument given (bug #40808).
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
123 %! assert (c, sortrows ([a(ia,:); b(ib,:)])); |
42df174ec2ff
setxor.m: Fix bug when "rows" argument given (bug #40808).
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
124 |
19349
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
125 %!assert (setxor (1, []), 1) |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
126 %!assert (setxor ([], 1), 1) |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
127 |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
128 %!test |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
129 %! [c, ia, ib] = setxor (1, []); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
130 %! assert (c, 1); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
131 %! assert (ia, 1); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
132 %! assert (isempty (ib)); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
133 |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
134 %!test |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
135 %! [c, ia, ib] = setxor ([], 1); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
136 %! assert (c, 1); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
137 %! assert (isempty (ia)); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
138 %! assert (ib, 1); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
139 |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
140 %!test |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
141 %! a = [2 1; 4 3]; b = []; |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
142 %! [c, ia, ib] = setxor (a, b); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
143 %! assert (c, [1; 2; 3; 4]); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
144 %! assert (ia, [3; 1; 4; 2]); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
145 %! assert (isempty (ib)); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
146 |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
147 %!test |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
148 %! a = []; b = [2 1; 4 3]; |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
149 %! [c, ia, ib] = setxor (a, b); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
150 %! assert (c, [1; 2; 3; 4]); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
151 %! assert (isempty (ia)); |
d171e23cac81
setxor.m: Fix bug with empty set input and multiple outputs (bug #43140).
Julien Bect <julien.bect@supelec.fr>
parents:
19195
diff
changeset
|
152 %! assert (ib, [3; 1; 4; 2]); |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
153 ## Test orientation of output |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
154 %!shared x,y |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
155 %! x = 1:3; |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
156 %! y = 2:5; |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
157 |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
158 %!assert (size (setxor (x, y)), [1 3]) |
20183
72ccbd36e23c
Return a column vector by default for Matlab compatibility (bug #44425, bug #44453).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
159 %!assert (size (setxor (x', y)), [3 1]) |
72ccbd36e23c
Return a column vector by default for Matlab compatibility (bug #44425, bug #44453).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
160 %!assert (size (setxor (x, y')), [3 1]) |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
161 %!assert (size (setxor (x', y')), [3 1]) |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
162 |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
163 ## Test multi-dimensional arrays |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
164 %!test |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
165 %! a = rand (3,3,3); |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
166 %! b = a; |
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
167 %! b(1,1,1) = 2; |
20183
72ccbd36e23c
Return a column vector by default for Matlab compatibility (bug #44425, bug #44453).
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
168 %! assert (intersect (a, b), sort (a(2:end)')); |
19195
d00f6b09258f
Overhaul functions in scripts/set directory.
Rik <rik@octave.org>
parents:
18081
diff
changeset
|
169 |