Finding (multiset) difference between two arrays

后端 未结 5 570
星月不相逢
星月不相逢 2021-01-19 02:50

Given arrays (say row vectors) A and B, how do I find an array C such that merging B and C will give A?

For example, given

A = [2, 4, 6, 4, 3, 3, 1         


        
5条回答
  •  青春惊慌失措
    2021-01-19 03:14

    Strongly inspired by Matt, but on my machine 40% faster:

    function A = multiDiff(A,B)
    for j = 1:numel(B)
        for i = 1:numel(A)
            if A(i) == B(j)
                A(i) = [];
                break;
            end
        end
    end
    end
    

提交回复
热议问题