我正在尝试在 Matlab 中执行以下操作。取两个可能包含重复元素的数字列表,然后从另一个集合中减去一个集合。
例如: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 菜单操作期间,我将不得不使用数千个设置元素进行数千次这样的计算。
我想避免处理上面第二个例子的例子: E=[0 0 2 0 2]; F=[0 0 2 0 1];
G=EF=[0 0 0 0 1];
谢谢你的帮助!