为什么我的Matlab随机洗牌不起作用?

为什么我的Matlab随机洗牌不起作用?,matlab,shuffle,random-sample,Matlab,Shuffle,Random Sample,我试着弄明白,但没用 说我有 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)): 为什么会这样?这对我来说似乎没有任何意义。如何洗牌向量,如: z = [1,2,3,4.... 1500,6001,6002,6003... 8999]; randperm取

我试着弄明白,但没用

说我有

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))

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

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

randperm取单个N并返回数字1到N的排列

我没有安装Matlab,因此无法尝试此操作,但这应该可以:

a(randperm(length(a)))

randperm取单个N并返回数字1到N的排列

我没有安装Matlab,因此无法尝试此操作,但这应该可以:

a(randperm(length(a)))

randperm取单个N并返回数字1到N的排列

我没有安装Matlab,因此无法尝试此操作,但这应该可以:

a(randperm(length(a)))

randperm取单个N并返回数字1到N的排列

我没有安装Matlab,因此无法尝试此操作,但这应该可以:

a(randperm(length(a)))

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


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


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


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


但是如果我给它我的数组z,它不会给我一个无序排列,而是一个[1到长度(a)]的随机顺序,这是不正确的。但是如果你用这个向量索引z,它应该返回所有索引处的元素,对吗?没问题。如果答案有用,请向上投票并接受。但是如果我给它我的数组z,它不会给我一个洗牌,而是给我一个[1到长度(a)]的随机顺序,这是不正确的。但是如果你用这个向量索引z,它应该返回所有索引处的元素,对吗?没问题。如果答案有用,请向上投票并接受。但是如果我给它我的数组z,它不会给我一个洗牌,而是给我一个[1到长度(a)]的随机顺序,这是不正确的。但是如果你用这个向量索引z,它应该返回所有索引处的元素,对吗?没问题。如果答案有用,请向上投票并接受。但是如果我给它我的数组z,它不会给我一个洗牌,而是给我一个[1到长度(a)]的随机顺序,这是不正确的。但是如果你用这个向量索引z,它应该返回所有索引处的元素,对吗?没问题。如果答案有帮助,请投票并接受。