【问题标题】:Octave generate combination subsetsOctave 生成​​组合子集
【发布时间】:2014-02-24 11:00:59
【问题描述】:

给定一个数字N,我想创建一个由x 列组成的矩阵,其中包含N 子集的每个组合。例如,如果 N16 并且 x3 那么我应该得到一个 560 行的矩阵,每行将有 3 列并包含从数字 1 到 16 的唯一组合。 我可以使用函数zzz(N,x) 吗? 我将生成很多具有不同 Nx 值的它们,因此 for 循环会减慢速度。

【问题讨论】:

  • 欢迎来到 Stack Overflow。你试过什么?阅读任何手册,如果尚未在八度音程中创建此函数(我不知道八度音程),您可能可以编写此函数。

标签: matlab combinations octave


【解决方案1】:

只需使用nchoosek 函数:

N = 16;
x = 3;
nchoosek(1:N, x)

像这样返回 560 行:

    .    .    .
    .    .    .
    .    .    .
    1    2   13
    1    2   14
    1    2   15
    1    2   16
    1    3    4
    1    3    5
    1    3    6
    1    3    7
    .    .    .
    .    .    .
    .    .    .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    相关资源
    最近更新 更多