Mercurial > hg > camir-aes2014
view toolboxes/FullBNT-1.0.7/KPMtools/mysymsetdiff.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line source
function C = mysymsetdiff(A,B) % MYSYMSETDIFF Symmetric set difference of two sets of positive integers (much faster than built-in setdiff) % C = mysetdiff(A,B) % C = (A\B) union (B\A) = { things that A and B don't have in common } if isempty(A) ma = 0; else ma = max(A); end if isempty(B) mb = 0; else mb = max(B); end if ma==0 C = B; elseif mb==0 C = A; else % both non-empty m = max(ma,mb); bitsA = sparse(1, m); bitsA(A) = 1; bitsB = sparse(1, m); bitsB(B) = 1; C = find(xor(bitsA, bitsB)); end