我正在尝试在给定的数字范围内生成 2 个元素的所有组合。我正在使用“combnk”功能,如下所示。
组合(1:4,2)
答案=
3 4
2 4
2 3
1 4
1 3
1 2
组合(1:6,2)
答案=
1 2
1 3
1 4
1 5
1 6
2 3
2 4
2 5
2 6
3 4
3 5
3 6
4 5
4 6
5 6
返回的组合顺序似乎发生了变化。我需要提前知道顺序,我的程序才能正常工作。
是否有任何解决方案可以确保我以一致的顺序获得组合?另外,为什么 MATLAB 会出现这种奇怪的行为?
到目前为止,我能想到的唯一解决方案是首先检查结果矩阵的第一个条目,然后使用“flipud”函数将其翻转过来。
更新:通过一些实验,我注意到只有当数字集的长度小于 6 时才会出现相反的顺序。这就是 combnk(1:6,2) 产生“正确”顺序的原因。其中 combnk(1:5,2) 向后产生结果。这还是个大问题。