【问题标题】:MATLAB: compare elements in arraysMATLAB:比较数组中的元素
【发布时间】:2012-11-16 11:29:50
【问题描述】:

假设有数组 A 和 B,它们都可以有任意数量和大小。例如

A=[1 2 3]
B=[4 8 52 7 10]

我想知道是否有任何方法可以在不使用循环的情况下检查 A 中的任何元素是否包含在 B 中?再一次,数组的数量和大小将是任意的,所以我无法对其进行硬编码。任何帮助和输入将不胜感激。谢谢!

【问题讨论】:

    标签: arrays matlab contains


    【解决方案1】:

    你的意思是这样的:

    A=[1 2 3]; B=[4 8 52 7 10] 
    ismember(A,B)
    

    ans =

    0     0     0
    

    【讨论】:

      【解决方案2】:

      添加到@NasserM.Abbasi:无论形状和大小,ismember 都可以工作,它始终是元素方面的。所以如果你有A=[1 2; 3 4]B=[1 3; 4 2; 1 2]
      然后 ismember 将返回:

      ismember(A,B);         % -> [1 1; 1 1] due to element-wise membership check
      ismember(A,B, 'rows'); % -> [1 0] since it checks row-wise.
      

      根据AB中可能的形状谨慎使用ismember。

      【讨论】:

        猜你喜欢
        • 2014-09-03
        • 1970-01-01
        • 2012-11-20
        • 1970-01-01
        • 2016-03-25
        • 1970-01-01
        • 2014-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多