我有两个不同大小的数组a和b。每一个都包含独特的价值。Matlab数组操作
我想比较两者,如果阵列中的任值是数组b,那么我想从B删除它(例如a = [2 3 5]
,b = [1 8 6 2 3 7]
,导致b = [1 8 6 7]
)。
它如何在Matlab中实现?
我有两个不同大小的数组a和b。每一个都包含独特的价值。Matlab数组操作
我想比较两者,如果阵列中的任值是数组b,那么我想从B删除它(例如a = [2 3 5]
,b = [1 8 6 2 3 7]
,导致b = [1 8 6 7]
)。
它如何在Matlab中实现?
使用intersect
3个输出参数,以获得元素的索引将被删除:
[c, ia, ib] = intersect(a, b);
b (ib) = [];
使用setdiff
找到一组元素而不是其他。
setdiff(b, a)
另一个选择是使用ISMEMBER功能经由logical indexing从b
属于的a
成员删除元素:
b(ismember(b,a)) = [];