1

我想生成所有可能的组合,以批量选择行,比如“k”大小。例如,矩阵 A 有 3 行,我想要批量大小为 2 的所有组合,即行 (1,2)(1,3)(2,3)。最简单的方法是什么?然后我想用它们来做一些操作,比如 myfunction();

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

4

1 回答 1

3

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

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

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

于 2012-12-12T21:48:08.943 回答