【问题标题】:Difference of two vectors and maintain order两个向量的差异并保持顺序
【发布时间】:2014-04-18 06:41:44
【问题描述】:

给定两个向量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,但结果向量已排序(或未按集合排序)。

【问题讨论】:

  • 嗯……就这么简单。而已!如果您将其作为答案,我可以将其标记为正确。

标签: matlab vector


【解决方案1】:

使用ismember得到匹配的,然后取反得到不匹配的,最后索引到A -

 A(~ismember(A,B))

【讨论】:

    【解决方案2】:

    在最新版本的 Matlab 中,您可以通过 setdiff 使用 'stable' 选项来做到这一点,这会保留顺序:

    setdiff(A,B,'stable')    
    

    【讨论】:

    • 直到现在我才懒得看setdiff,可能有用!
    • 为了其他人寻找答案的目的,我更新了我的问题,说我正在使用 R2011b,所以很遗憾我没有“稳定”标志。 :-\
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 2013-08-10
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多