Matlab数组操作

时间:2011-04-27 09:57:26

标签: matlab

我有两个不同大小的数组a和b。每个都包含唯一值。

我想比较两者,如果数组a的任何值在数组b中,那么我想从b中删除它(例如a = [2 3 5]b = [1 8 6 2 3 7],结果b = [1 8 6 7])。

如何在Matlab中实现?

3 个答案:

答案 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)) = [];