私はMatlabで次のことをやろうとしています。繰り返し要素を含む可能性のある 2 つの数値リストを取得し、一方のセットを他方のセットから減算します。
例: A=[1 1 2 4]; B=[1 2 4];
望ましい結果は AB=C=[1] です
または、別の例として、E=[3 3 5 5]; F=[3 3 5];
望ましい結果は EF=G=[5] です
Matlab の集合操作を使用してこれを行うことができればよいのですが、それらの関数 setdiff は行列内の繰り返される要素を尊重しません。これは厳密な集合論の観点からは正しいと思いますが、「私は 3 つのリンゴと 4 つのオレンジを持っています。あなたは 2 つのリンゴと 1 つのオレンジを持っています。それぞれ何個残っていますか?」というような問題に取り組みたいと思います。これらのセットで可能な値の範囲は数千に及ぶため、要素を集計してから行列を減算するために大きな行列を構築することは、速度の理由から実行可能ではないようです。GUI メニュー操作中に、何千ものセット要素を使用してこれらの計算を何千回も行う必要があります。
上記の 2 番目の例に取り組むために避けたいことの例: E=[0 0 2 0 2]; F=[0 0 2 0 1];
G=EF=[0 0 0 0 1];
ご協力いただきありがとうございます!