标签: 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中做到这一点同时保留向量的顺序?
A = [ 1 7 3 2 8 9 4 6 5 ]
B = [ 2 4 6 8 ]
[ 1 7 3 9 5 ]
我已查看setdiff,但生成的矢量已排序(或未按照集合排序)。
setdiff
答案 0 :(得分:3)
使用ismember获取匹配的,然后否定获取不匹配的那些,然后最终索引到A -
ismember
A
A(~ismember(A,B))
答案 1 :(得分:1)
在Matlab的最新版本中,您可以使用'stable'选项setdiff执行此操作,该选项会保留顺序:
'stable'
setdiff(A,B,'stable')