Vector 重复长度不同于输入向量的置换

Vector 重复长度不同于输入向量的置换,vector,combinations,octave,linear-algebra,algebra,Vector,Combinations,Octave,Linear Algebra,Algebra,如何解决显示向量的所有可能组合的问题 x ="abcdefghijklmnopqrstuvwxyz" 我会把它自己乘以。 我想要这样的解决方案: "aa","ab","ac",..."za","zb",.."zz" 我可以为每个元素建立索引 我还想要相同乘法的解,其中我将得到三个和四个相同x向量的结果,即解为: "aaa","aab"..."zzz" and "aaaa","aaab",..."zzzz" 如果将字母映射为整数(请参见toascii),则可以通过在基数25(toascii

如何解决显示向量的所有可能组合的问题

x ="abcdefghijklmnopqrstuvwxyz"
我会把它自己乘以。 我想要这样的解决方案:

"aa","ab","ac",..."za","zb",.."zz" 
我可以为每个元素建立索引

我还想要相同乘法的解,其中我将得到三个和四个相同x向量的结果,即解为:

"aaa","aab"..."zzz" and "aaaa","aaab",..."zzzz"

如果将字母映射为整数(请参见toascii),则可以通过在基数25(toascii('z')-toascii('a'))中添加数字来生成所有组合。例如,0->'a',25->'z',26->'ba',等等


通过这种方式,您可以按顺序生成所有组合

尝试使用函数
ndgrid()
。其结果取决于输出参数的数量。这是所有3组重复的答案

octave> [x y z] = ndgrid ("abcdef");
octave> allcombs = [x(:) y(:) z(:)];
我不打印结果,因为它很长。使用函数
ndgrid()
perms()
、和
nchoosek()
可以非常轻松地解决此类问题

对于n长度,请使用
nthargout()


答案是Thanx,但我找到了更好的主意。在这里,我发现了一些新的代码,我使用int,但我可以处理它。a=1:4;b=1:3;c=重塑(repmat(a,numel(b),1),numel(a)*numel(b),1);d=repmat(b(:),长度(a),1);但是…如果有人知道的话,我是如何修改这段代码的,用于3和4向量的?
octave> cart  = nthargout ([1:n], @ndgrid, "abcdef");
octave> combs = cell2mat (cellfun (@(c) c(:), cart, "UniformOutput", false));