matlab中nchoosek是从n个数中取k个数的组合数目。但是我们经常是n个数,每个数有m中取值,那么总共有n^k种组合,例如
对0,1,2三个数生成5个位置的全组合,应该有3*3*3*3*3=243种组合。
那么这种用matlab怎么实现呢?
>> [a,b,c,d,e]=ndgrid(0:2);
>> A=[a(:),b(:),c(:),d(:),e(:)];
>> whos A
Name Size Bytes Class Attributes
A 243x5 9720 double
%再运行一个例子
>> [a,b,c,d]=ndgrid(0:3);
>> A=[a(:),b(:),c(:),d(:)]
A =
0 0 0 0
1 0 0 0
2 0 0 0
3 0 0 0
0 1 0 0
1 1 0 0
2 1 0 0
3 1 0 0
0 2 0 0
1 2 0 0
2 2 0 0
3 2 0 0
0 3 0 0
1 3 0 0
2 3 0 0
3 3 0 0
0 0 1 0
1 0 1 0
2 0 1 0
3 0 1 0
0 1 1 0
1 1 1 0
2 1 1 0
3 1 1 0
0 2 1 0
1 2 1 0
2 2 1 0
3 2 1 0
0 3 1 0
1 3 1 0
2 3 1 0
3 3 1 0
0 0 2 0
1 0 2 0
2 0 2 0
3 0 2 0
0 1 2 0
1 1 2 0
2 1 2 0
3 1 2 0
0 2 2 0
1 2 2 0
2 2 2 0
3 2 2 0
0 3 2 0
1 3 2 0
2 3 2 0
3 3 2 0
0 0 3 0
1 0 3 0
2 0 3 0
3 0 3 0
0 1 3 0
1 1 3 0
2 1 3 0
3 1 3 0
0 2 3 0
1 2 3 0
2 2 3 0
3 2 3 0
0 3 3 0
1 3 3 0
2 3 3 0
3 3 3 0
0 0 0 1
1 0 0 1
2 0 0 1
3 0 0 1
0 1 0 1
1 1 0 1
2 1 0 1
3 1 0 1
0 2 0 1
1 2 0 1
2 2 0 1
3 2 0 1
0 3 0 1
1 3 0 1
2 3 0 1
3 3 0 1
0 0 1 1
1 0 1 1
2 0 1 1
3 0 1 1
0 1 1 1
1 1 1 1
2 1 1 1
3 1 1 1
0 2 1 1
1 2 1 1
2 2 1 1
3 2 1 1
0 3 1 1
1 3 1 1
2 3 1 1
3 3 1 1
0 0 2 1
1 0 2 1
2 0 2 1
3 0 2 1
0 1 2 1
1 1 2 1
2 1 2 1
3 1 2 1
0 2 2 1
1 2 2 1
2 2 2 1
3 2 2 1
0 3 2 1
1 3 2 1
2 3 2 1
3 3 2 1
0 0 3 1
1 0 3 1
2 0 3 1
3 0 3 1
0 1 3 1
1 1 3 1
2 1 3 1
3 1 3 1
0 2 3 1
1 2 3 1
2 2 3 1
3 2 3 1
0 3 3 1
1 3 3 1
2 3 3 1
3 3 3 1
0 0 0 2
1 0 0 2
2 0 0 2
3 0 0 2
0 1 0 2
1 1 0 2
2 1 0 2
3 1 0 2
0 2 0 2
1 2 0 2
2 2 0 2
3 2 0 2
0 3 0 2
1 3 0 2
2 3 0 2
3 3 0 2
0 0 1 2
1 0 1 2
2 0 1 2
3 0 1 2
0 1 1 2
1 1 1 2
2 1 1 2
3 1 1 2
0 2 1 2
1 2 1 2
2 2 1 2
3 2 1 2
0 3 1 2
1 3 1 2
2 3 1 2
3 3 1 2
0 0 2 2
1 0 2 2
2 0 2 2
3 0 2 2
0 1 2 2
1 1 2 2
2 1 2 2
3 1 2 2
0 2 2 2
1 2 2 2
2 2 2 2
3 2 2 2
0 3 2 2
1 3 2 2
2 3 2 2
3 3 2 2
0 0 3 2
1 0 3 2
2 0 3 2
3 0 3 2
0 1 3 2
1 1 3 2
2 1 3 2
3 1 3 2
0 2 3 2
1 2 3 2
2 2 3 2
3 2 3 2
0 3 3 2
1 3 3 2
2 3 3 2
3 3 3 2
0 0 0 3
1 0 0 3
2 0 0 3
3 0 0 3
0 1 0 3
1 1 0 3
2 1 0 3
3 1 0 3
0 2 0 3
1 2 0 3
2 2 0 3
3 2 0 3
0 3 0 3
1 3 0 3
2 3 0 3
3 3 0 3
0 0 1 3
1 0 1 3
2 0 1 3
3 0 1 3
0 1 1 3
1 1 1 3
2 1 1 3
3 1 1 3
0 2 1 3
1 2 1 3
2 2 1 3
3 2 1 3
0 3 1 3
1 3 1 3
2 3 1 3
3 3 1 3
0 0 2 3
1 0 2 3
2 0 2 3
3 0 2 3
0 1 2 3
1 1 2 3
2 1 2 3
3 1 2 3
0 2 2 3
1 2 2 3
2 2 2 3
3 2 2 3
0 3 2 3
1 3 2 3
2 3 2 3
3 3 2 3
0 0 3 3
1 0 3 3
2 0 3 3
3 0 3 3
0 1 3 3
1 1 3 3
2 1 3 3
3 1 3 3
0 2 3 3
1 2 3 3
2 2 3 3
3 2 3 3
0 3 3 3
1 3 3 3
2 3 3 3
3 3 3 3