2017-02-25 102 views
1

如果我有一个数组中的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] 
+0

你能否修正这篇文章的措辞来澄清你的意思?一个可能有效的结果的例子可能会有所帮助。 – tmpearce

+0

我已经更新了这个问题 – Addee

+0

你可以使用[randperm](https://www.mathworks.com/help/matlab/ref/randperm.html) – rahnema1

回答

1

您可以使用randperm生成随机指标到原来的载体,并用它来打乱原来的载体。然后,只取混洗向量的元素,以便:

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

你的变量S1通过S5对应于矩阵sets的每一行。