在数组中唯一随机选择的数字

时间:2017-02-25 02:20:02

标签: matlab random

如果我在数组中有10个数字a=[1 2 3 4 5 6 7 8 9 10] 如何在每组中随机选择5组随机选择两个数字,这些数字在所有5组中应该是唯一的?

对于上面的数组,答案应该是:

S1=[3 8]
S2=[2 5]
S3=[1 4]
S4=[6 9]
S5=[7 10]

1 个答案:

答案 0 :(得分:1)

您可以使用randperm生成原始矢量的随机索引,并使用它来随机播放原始矢量。然后,按顺序获取混洗向量的元素:

a=[1 2 3 4 5 6 7 8 9 10];
shuffled = a(randperm(length(a)));
sets = reshape(shuffled,5,2);

您的变量S1S5对应矩阵sets的每一行。