diff options
Diffstat (limited to 'sourcecodes/bnt-master/KPMtools/myunion.m')
| -rw-r--r-- | sourcecodes/bnt-master/KPMtools/myunion.m | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/KPMtools/myunion.m b/sourcecodes/bnt-master/KPMtools/myunion.m new file mode 100644 index 00000000..0f358020 --- /dev/null +++ b/sourcecodes/bnt-master/KPMtools/myunion.m @@ -0,0 +1,29 @@ +function C = myunion(A,B) +% MYUNION Union of two sets of positive integers (much faster than built-in union) +% C = myunion(A,B) + +if isempty(A) + ma = 0; +else + ma = max(A); +end + +if isempty(B) + mb = 0; +else + mb = max(B); +end + +if ma==0 && mb==0 + C = []; +elseif ma==0 && mb>0 + C = B; +elseif ma>0 && mb==0 + C = A; +else + %bits = sparse(1, max(ma,mb)); + bits = zeros(1, max(ma,mb)); + bits(A) = 1; + bits(B) = 1; + C = find(bits); +end |
