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

zeb*_*bra 9 matlab

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

gno*_*ice 10

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

isSubset = all(ismember(a, b));
Run Code Online (Sandbox Code Playgroud)

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

isSubset = isempty(setdiff(a, b));
Run Code Online (Sandbox Code Playgroud)