如何在MatLab中获取随机向量?

时间:2017-05-09 14:55:40

标签: matlab vector

我需要在MatLab中获得一个随机排列n个数字的向量。我该怎么办?

如果我使用randi(10,1,10),我将获得随机值,但我不保证所有数字都在序列中。

例如:

我需要一个包含所有数字1,2,3,4,5,6,7,8,9,10的向量,按随机顺序排列,例如2,5,3,6,8,10,4,7,9,1

1 个答案:

答案 0 :(得分:1)

您正在寻找randperm功能。来自文档:

  

p = randperm(n)返回一个行向量,其中包含从1到n的整数的随机排列。

您的示例是randperm(10)

您可以传入一个可选的第二个参数来确定将选择多少个元素。例如,randperm(10, 5)会从1到10中选择五个随机数。

您还可以使用randperm的结果随机播放或从任意向量中进行选择。假设您希望数字101到110是随机顺序而不是1到10:

nums = 101:110;
nums = nums(randperm(numel(nums)));