我有两个不同大小的数组a和b。每个都包含唯一值。
我想比较两者,如果数组a的任何值在数组b中,那么我想从b中删除它(例如a = [2 3 5]
,b = [1 8 6 2 3 7]
,结果b = [1 8 6 7]
)。
如何在Matlab中实现?
答案 0 :(得分:7)
使用setdiff
查找一组中的元素,但不能查找另一组中的元素。
setdiff(b, a)
答案 1 :(得分:5)
使用带有3个输出参数的intersect
来获取要删除的元素的索引:
[c, ia, ib] = intersect(a, b);
b (ib) = [];
答案 2 :(得分:3)
另一种选择是使用ISMEMBER功能从b
通过logical indexing删除a
成员中的元素:
b(ismember(b,a)) = [];