Mercurial > hg > octave-nkf
diff scripts/set/intersection.m @ 559:4e826edfbc56
[project @ 1994-07-25 22:18:28 by jwe]
Initial revision
author | jwe |
---|---|
date | Mon, 25 Jul 1994 22:19:05 +0000 |
parents | |
children | 3470f1e25a79 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/scripts/set/intersection.m @@ -0,0 +1,41 @@ +function y = intersection(a,b) + +# usage: intersection(a,b) +# +# Returns the intersection of sets a and b. +# +# See - create_set, union, complement + + if (nargin != 2) + error("usage: intersection(a,b)"); + endif + + if(isempty(a) || isempty(b)) + y = []; + return; + endif + + a = create_set(a); + b = create_set(b); + + if(length(a) < length(b)) + yindex = 1; + y = zeros(1,length(a)); + for index = 1:length(a) + if(any(b == a(index))) + y(yindex++) = a(index); + endif + endfor + else + yindex = 1; + y = zeros(1,length(b)); + for index = 1:length(b) + if(any(a == b(index))) + y(yindex++) = b(index); + endif + endfor + endif + + y = y(1:(yindex-1)); + +endfunction