两个向量的差异和维持顺序

时间:2014-04-17 09:36:26

标签: matlab vector

给定两个向量A = [ 1 7 3 2 8 9 4 6 5 ]B = [ 2 4 6 8 ],我想从A中删除B的元素,这样我得到一个向量[ 1 7 3 9 5 ],我怎么能在Matlab R2011b中做到这一点同时保留向量的顺序?

我已查看setdiff,但生成的矢量已排序(或未按照集合排序)。

2 个答案:

答案 0 :(得分:3)

使用ismember获取匹配的,然后否定获取不匹配的那些,然后最终索引到A -

 A(~ismember(A,B))

答案 1 :(得分:1)

在Matlab的最新版本中,您可以使用'stable'选项setdiff执行此操作,该选项会保留顺序:

setdiff(A,B,'stable')