【发布时间】:2012-11-16 11:29:50
【问题描述】:
假设有数组 A 和 B,它们都可以有任意数量和大小。例如
A=[1 2 3]
B=[4 8 52 7 10]
我想知道是否有任何方法可以在不使用循环的情况下检查 A 中的任何元素是否包含在 B 中?再一次,数组的数量和大小将是任意的,所以我无法对其进行硬编码。任何帮助和输入将不胜感激。谢谢!
【问题讨论】:
假设有数组 A 和 B,它们都可以有任意数量和大小。例如
A=[1 2 3]
B=[4 8 52 7 10]
我想知道是否有任何方法可以在不使用循环的情况下检查 A 中的任何元素是否包含在 B 中?再一次,数组的数量和大小将是任意的,所以我无法对其进行硬编码。任何帮助和输入将不胜感激。谢谢!
【问题讨论】:
你的意思是这样的:
A=[1 2 3]; B=[4 8 52 7 10]
ismember(A,B)
ans =
0 0 0
【讨论】:
添加到@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.
根据A和B中可能的形状谨慎使用ismember。
【讨论】: