2012-11-16 158 views
1

假设有数组A和B,它们都可以有任意数量和大小。例如MATLAB:比较数组中的元素

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

我想知道是否有任何方法检查A中的任何元素是否包含在B中而不使用循环?再次,数组的数量和大小将是任意的,所以我不能硬编码它。任何帮助和意见,将不胜感激。谢谢!

回答

9

你的意思是这样的:

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

ANS =

0  0  0 
1

添加到@ 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. 

使用ismember认真按照AB可能的形状。