wolffd@0: function C = mysetdiff(A,B) wolffd@0: % MYSETDIFF Set difference of two sets of positive integers (much faster than built-in setdiff) wolffd@0: % C = mysetdiff(A,B) wolffd@0: % C = A \ B = { things in A that are not in B } wolffd@0: % wolffd@0: % Original by Kevin Murphy, modified by Leon Peshkin wolffd@0: wolffd@0: if isempty(A) wolffd@0: C = []; wolffd@0: return; wolffd@0: elseif isempty(B) wolffd@0: C = A; wolffd@0: return; wolffd@0: else % both non-empty wolffd@0: bits = zeros(1, max(max(A), max(B))); wolffd@0: bits(A) = 1; wolffd@0: bits(B) = 0; wolffd@0: C = A(logical(bits(A))); wolffd@0: end