【问题标题】:Matlab arrays operationMatlab数组操作
【发布时间】:2011-04-27 09:57:26
【问题描述】:

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

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

如何在Matlab中实现?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    使用setdiff 查找一组中的元素,但不查找另一组中的元素。

    setdiff(b, a)
    

    【讨论】:

      【解决方案2】:

      使用带有 3 个输出参数的 intersect 来获取要删除的元素的索引:

      [c, ia, ib] = intersect(a, b);
      b (ib) = [];
      

      【讨论】:

        【解决方案3】:

        另一种选择是使用ISMEMBER 函数通过logical indexingb 中删除属于a 成员的元素:

        b(ismember(b,a)) = [];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-09-14
          • 2013-03-04
          • 2015-02-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多