我需要生成10X5 matrix
的所有可能组合。我需要的是所有10X1 matrix
,10X2 matrix
,10X3 matrix
等。最有效的方式。我可以使用多个循环,但这将是低效的。
例如:我有一个矩阵:
col1 col2 col3 col4
我想:
col1 and col2 and col3 and col4
然后:
col1 col2 and col1 col3 and col1 col4
依旧返回列
的所有2 ^ 5-1组合答案 0 :(得分:3)
您可以在循环中使用nchoosek
:
for k = 1:ceil(5/2) %only need to go half way up otherwise start repeating
index{k} = nchoosek(1:5, k);
end
然后使用index通过选择列
来获取子矩阵答案 1 :(得分:2)
我不打算为你解决,但这里有一些有用的功能。您必须澄清您的输入究竟是什么。
>> nchoosek([1:4],3)
ans =
1 2 3
1 2 4
1 3 4
2 3 4
>> combntns([1:3],2)
ans =
1 2
1 3
2 3
>> perms([1:3])
ans =
3 2 1
3 1 2
2 3 1
2 1 3
1 2 3
1 3 2