【问题标题】:Why does my Matlab Random Shuffle not work?为什么我的 Matlab 随机随机播放不起作用?
【发布时间】:2013-12-25 08:52:45
【问题描述】:

我尝试解决这个问题,但它不起作用。

说我有

a = [5,1,5,6,7,2,4];

现在,如果我这样做 a(randperm(a)) 我会得到:

ans =

     1     7     6     5     5

现在,我也有

b = [1,2,3,4,5,6,7,8,9,10];

但是,如果我这样做 b(randperm(b))

ans =

     1

为什么会这样?这对我来说似乎没有任何意义。我如何洗牌像这样的向量:

z = [1,2,3,4.... 1500,6001,6002,6003... 8999];

【问题讨论】:

    标签: matlab shuffle random-sample


    【解决方案1】:

    randperm 接受单个 N 并返回数字 1 到 N 的排列。

    我没有安装 Matlab,所以我无法尝试,但这应该可以:

    a(randperm(length(a)))
    

    【讨论】:

    • 但是如果我把我的数组 z 给它,它不会给我洗牌,而是给我一个 [1 to length(a)] 的随机排序,这是不正确的。
    • 但是如果你用那个向量索引 z,它应该返回所有这些索引处的元素,对吧?
    • 没问题。如果回答有帮助,请点赞并采纳。
    【解决方案2】:

    randperm 的参数不应该是数组,而是长度。 试试

    B(randperm(length(B)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多