从数组中随机选择一个元素

时间:2014-01-21 19:24:51

标签: arrays matlab

我通过matlab代码随机选择数组元素。我从数组中选择了8个元素(1,64)。现在,我想创建所有组合。示例数组= [1 2 3 4 ... 64]我选择了8个元素new = [1 2 3 4 5 6 7 8] new = [1 2 3 4 5 6 7 9] ... new是所有组合。我该如何创建所有组合?对于matlab代码

1 个答案:

答案 0 :(得分:2)

假设订单不重要(即[1 2 3 4 5 6 7 8]不计入不同的组合[1 2 3 4 5 6 8 7]),请使用

combinations = nchoosek(1:64,8);

但它可能需要很长时间和RAM。

例如,

>> combinations = nchoosek(1:5,3)

给出

combinations =

     1     2     3
     1     2     4
     1     2     5
     1     3     4
     1     3     5
     1     4     5
     2     3     4
     2     3     5
     2     4     5
     3     4     5

要随机生成其中一种组合,而不必先计算它们:

combination = sort(randsample(1:64,8));