Arrays 从数组所有组合中随机选择一个元素

Arrays 从数组所有组合中随机选择一个元素,arrays,matlab,Arrays,Matlab,我用matlab代码随机选择了一个数组的元素。我从数组(1,64)中选择了8个元素。现在,我想创建所有的组合。示例数组=[1 2 3 4…64]我随机选择了8个元素new=[1 2 3 4 5 6 7 8]new=[1 2 3 4 5 6 7 9]。。。新的是所有的组合。如何创建所有组合?对于matlab代码假设顺序不重要(即,[1 2 3 4 5 6 7 8]不计算为不同的组合[1 2 3 4 5 6 8 7]),使用 但这可能需要很多时间和内存 比如说, >> combinati

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

假设顺序不重要(即,
[1 2 3 4 5 6 7 8]
不计算为不同的组合[1 2 3 4 5 6 8 7]),使用

但这可能需要很多时间和内存

比如说,

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


要随机生成这些组合中的一个,而不必事先计算所有组合:

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

呃,呃,你是怎么随机选择这8个元素的,数组=[1 2 3…64];;msize=numel(数组);idx=randperm(msize);rndmarray=array(idx(1:8));final=sort(rndmarray)@SamB这就是随机选择8个元素的方式,感谢对这个问题感兴趣的人@Luis Mendo。我们可以用遗传算法来做到这一点吗。因为ı在matlab中有一个繁忙的站,它的组合=sort(randsample(1:64,8))@user3210485,所以我对遗传算法不是很感兴趣,sorry@user3210485欢迎
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));