如何找出有多少个集合仅包含另一个集合中的元素

发布于 2024-12-20 13:35:33 字数 239 浏览 1 评论 0原文

我正在寻找一种有效的方法来确定有多少个集合由 Matlab 中的另一个集合元素组成。

例子: U ={[1 2],[2 3],[3 4],[4 5],[5 6],[6 7],[1 7],[1 9],[3 9],[6 8],[8 9],[4 9],[5 8]}; V=[1 2 3 4 9];

[1 2],[2 3],[3 4],[1 9],[3 9],[4 9] 所以答案:6个集合由V个集合元素组成,

如何得到?

I am looking for an efficient way to determine how many sets consist of another set elements in Matlab.

Example:
U ={[1 2],[2 3],[3 4],[4 5],[5 6],[6 7],[1 7],[1 9],[3 9],[6 8],[8 9],[4 9],[5 8]};
V=[1 2 3 4 9];

[1 2],[2 3],[3 4],[1 9],[3 9],[4 9] so answer: 6 sets consist of V set elements

how to get that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柠栀 2024-12-27 13:35:33
 U2=U(cellfun(@(x) all(ismember(x,V)),U));

结果是:

 U2{:}

ans =
     1     2
ans =
     2     3
ans =
     3     4
ans =
     1     9
ans =
     3     9
ans =
     4     9
 U2=U(cellfun(@(x) all(ismember(x,V)),U));

The result is:

 U2{:}

ans =
     1     2
ans =
     2     3
ans =
     3     4
ans =
     1     9
ans =
     3     9
ans =
     4     9
当梦初醒 2024-12-27 13:35:33

可以使用逻辑索引来解决这个问题:

U={[1 2],[2 3],[3 4],[4 5],[5 6],[6 7],[1 7],[1 9],[3 9],[6 8],[8 9],[4 9],[5 8]};
V=[1 2 3 4 9];
Um=cell2mat(U');
A=Um(ismember(Um(:,1),V)&ismember(Um(:,2),V),:);

You can use logical indexing to solve this problem:

U={[1 2],[2 3],[3 4],[4 5],[5 6],[6 7],[1 7],[1 9],[3 9],[6 8],[8 9],[4 9],[5 8]};
V=[1 2 3 4 9];
Um=cell2mat(U');
A=Um(ismember(Um(:,1),V)&ismember(Um(:,2),V),:);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文