生成用于在大矩阵中选择特定行数的所有可能组合

时间:2012-12-12 20:57:48

标签: matlab

我想生成所有可能的组合,用于批量选择行,例如'k'大小。例如,矩阵A有3行,我想要批量大小为2的所有组合,即行(1,2)(1,3)(2,3)。最简单的方法是什么?然后我想将它们用于像myfunction();

这样的操作

我认为nchoosek函数可以实现选择组合的技巧但是如何使用nchoosek输出的每一行作为我的矩阵的索引?

1 个答案:

答案 0 :(得分:3)

如果您想逐个使用每个组合,您可以执行以下操作:

A = rand(3);
comb = nchoosek(length(A), 2);
for i = 1:size(comb, 1)
  myfunction(A(comb(i, :), :));
end

A(comb(i, :))是对应于第i行组合的k x n矩阵(此处为3 x 2)。

相关问题