Daniel@0: function C = myunion(A,B) Daniel@0: % MYUNION Union of two sets of positive integers (much faster than built-in union) Daniel@0: % C = myunion(A,B) Daniel@0: Daniel@0: if isempty(A) Daniel@0: ma = 0; Daniel@0: else Daniel@0: ma = max(A); Daniel@0: end Daniel@0: Daniel@0: if isempty(B) Daniel@0: mb = 0; Daniel@0: else Daniel@0: mb = max(B); Daniel@0: end Daniel@0: Daniel@0: if ma==0 & mb==0 Daniel@0: C = []; Daniel@0: elseif ma==0 & mb>0 Daniel@0: C = B; Daniel@0: elseif ma>0 & mb==0 Daniel@0: C = A; Daniel@0: else Daniel@0: %bits = sparse(1, max(ma,mb)); Daniel@0: bits = zeros(1, max(ma,mb)); Daniel@0: bits(A) = 1; Daniel@0: bits(B) = 1; Daniel@0: C = find(bits); Daniel@0: end