如何在matlab中找到集合的子集?

如何在matlab中找到集合的子集?,matlab,Matlab,我有一套28人的数字。例如: A=1:28; 我想把这个集合分成4个部分(每个部分包括7个数字)。如何查找所有子集?我更喜欢将子集保存在4个矩阵中,以计算每个子集的和以及其他数学运算。关于实现,请查看: 其中,笔者提出了两种实施方式 --朴素的方法:枚举集合中除空集以外的所有子集,这可以通过二进制分解的技巧实现(参见)。计算每个子集的大小,并选择具有固定大小的子集 --非平凡算法:它需要一个固定大小的初始子集。有了这个集合,就可以通过置换生成其他大小相同的相似子集 如果你还有其他问题,请告诉我

我有一套28人的数字。例如:

A=1:28;

我想把这个集合分成4个部分(每个部分包括7个数字)。如何查找所有子集?我更喜欢将子集保存在4个矩阵中,以计算每个子集的和以及其他数学运算。

关于实现,请查看: 其中,笔者提出了两种实施方式

--朴素的方法:枚举集合中除空集以外的所有子集,这可以通过二进制分解的技巧实现(参见)。计算每个子集的大小,并选择具有固定大小的子集

--非平凡算法:它需要一个固定大小的初始子集。有了这个集合,就可以通过置换生成其他大小相同的相似子集

如果你还有其他问题,请告诉我


干杯

那么:你想把所有可能的分区都分成7个元素的子集,对吗?此类分区的数量似乎大约为
nchoosek(28,7)*nchoosek(21,7)*nchoosek(14,7)
,这可能超出了计算机内存的容量