通过内置命令在matlab中计算所有N位字符串

Computing all N-bit strings in matlab through inbuilt command

给定一个集合S=[a,b,c,v,f,d,e],我们想要枚举每个可能的非空子集。显然会有 2^7-1 个这样的子集。有一种像这样显式计算子集的方法:-

可以将上述集合 S 映射到一个 7 位字符串,然后使用上面在 matlab 中实现的伪代码计算所有可能的 7 位字符串。除了第一个之外,每个都将对应于所需的子集。上图来自lec。计算机科学 226 的幻灯片:Spring 2011 的算法和数据结构。

我正在寻找一个自动执行此操作的 MATLAB 命令。否则,在 matlab 中用最少的编码枚举所有非空子集的最简单方法是什么?

不确定它的效率如何,但它非常短:

combMat = (dec2bin(1:(2.^numel(S)-1)) == '1');

每一行都是 S 的逻辑索引以创建一个集合。