通过内置命令在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
的逻辑索引以创建一个集合。
给定一个集合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
的逻辑索引以创建一个集合。