如何用k个不同的字符生成所有可能的长度为n的字符串(按字典顺序排列)? (MATLAB)

时间:2015-09-30 14:19:31

标签: string matlab

我有字母" A"," B"," C"," D"和" E&# 34;我希望用这些字母生成所有可能的长度为7的字符串(允许冗余)。所以,我想得到:

AAAAAAA

AAAAAAB

AAAAAAC

AAAAAAD

AAAAAAE

...

依此类推,所有可能的字符串。我知道如何通过以下方式手动执行此操作,创建:

A = [' A'],B = [' B']等...然后创建嵌入式for循环以连接所有元素。但是,我想在函数中输入一个ABCDE的通用列表,只需向函数提供一个整数来获得变量结果。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

这样的东西?

Test = 'ABCDE'; 
A  = cell(7, 1);    %//pre-allocating for speed
[A{:}] = ndgrid(Test);  
y = cellfun(@(Test) {Test(:)} , A);
y = horzcat (y{:}); 

>>  
AAAAAAA
BAAAAAA
CAAAAAA
DAAAAAA

编辑:操作...没有看到7 ..