【问题标题】:Unique randomly select numbers in a array数组中唯一随机选择的数字
【发布时间】:2017-02-25 11:28:04
【问题描述】:

如果数组中有 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]

【问题讨论】:

  • 您能否修改帖子的措辞以澄清您的实际意思?一个可能有效的结果示例可能会有所帮助。
  • 我已经更新了问题
  • 你可以使用randperm

标签: matlab random


【解决方案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 的每一行。

【讨论】:

    猜你喜欢
    • 2016-05-09
    • 2018-02-16
    • 2010-12-10
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 2012-03-27
    相关资源
    最近更新 更多