如何从单元格 B 中删除属于 A 或包含在 A 的一个向量中的所有向量?
How to remove all vectors from a cell B which belong to A or which are contained in one vector from A?
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]};
如何从单元格 B 中删除属于 A 或包含在 A 的一个向量中的所有向量?
我的示例所需的结果
out = {[20 30 55]}
一行:
out = B(~cellfun(@(y) any(cellfun(@(x) all(ismember(y,x)), A)), B));
代码的解释只是换句话说就是您要的内容:内部 cellfun
检测 B
的向量是否完全包含在 [=13] 的向量之一中=],外层 cellfun
为所有 B
向量组合这些结果。生成的逻辑向量(B
的大小)被取反,因为您想要 B
唯一的向量,而不是 A
.[=19 中的 "embedded" =]
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]};
如何从单元格 B 中删除属于 A 或包含在 A 的一个向量中的所有向量?
我的示例所需的结果
out = {[20 30 55]}
一行:
out = B(~cellfun(@(y) any(cellfun(@(x) all(ismember(y,x)), A)), B));
代码的解释只是换句话说就是您要的内容:内部 cellfun
检测 B
的向量是否完全包含在 [=13] 的向量之一中=],外层 cellfun
为所有 B
向量组合这些结果。生成的逻辑向量(B
的大小)被取反,因为您想要 B
唯一的向量,而不是 A
.[=19 中的 "embedded" =]