如何从属于A的单元格B中删除所有向量或从A中包含在一个向量中的向量?

时间:2015-07-31 15:46:21

标签: matlab cell-array

A = {[1 2 3 4],[22 55 78 84],[50 21 98 71],[10 15 16]};
B = {[2 4],[20 30 55],[16 15 10],[22 55 78]};

如何从属于A的单元格B中删除所有向量或从A中包含在一个向量中的向量?

我的示例所需的结果

out = {[20 30 55]}

1 个答案:

答案 0 :(得分:3)

单行:

out = B(~cellfun(@(y) any(cellfun(@(x) all(ismember(y,x)), A)), B));

代码的解释只是说你要求的内容:内部cellfun检测B的向量是否被A的一个向量完全包含,外cellfun汇总了所有B向量的结果。生成的逻辑向量(B的大小)被否定,因为您需要B唯一的向量,而不是A中“嵌入”的向量。