如何检查一个向量是否是另一个向量的子集?

时间:2012-04-11 16:40:21

标签: matlab

我正在寻找一种matlab方法。循环似乎很容易。我有两个向量,比如a = [1 2 3]b = [1 54 2 4 6 3]。我想确定a是否是b的子集。这是怎么做到的?

2 个答案:

答案 0 :(得分:9)

最简单,最快捷的方法可能是使用ISMEMBERALL函数:

isSubset = all(ismember(a, b));

您也可以使用SETDIFFISEMPTY,但这似乎效率较低(它的运行速度比R2010b中的上述速度慢一点):

isSubset = isempty(setdiff(a, b));

答案 1 :(得分:0)

您也可以对两个集合进行交叉,看看它是否为空。 C = intersect(A,B)返回A和B共同的数据,没有重复。