如何从固定集生成随机数

时间:2014-02-06 15:54:59

标签: matlab random

我有固定数字:-3,-1,1,3。如何随机生成如下矩阵?

 1  -1  -3  -1

 3  -3  -3   3   

 3   3   1  -1  

 3  -3   3  -1 

3 个答案:

答案 0 :(得分:3)

使用randi在可能值的向量中创建随机索引值:

x = [-3 -1 1 3]
y = randi(length(x),[5 5]);
y = x(y);

答案 1 :(得分:1)

虽然@nkjt's answer可能是要走的路,但如果你有统计工具箱,你可以使用randsample(替换)简化一点:

result = NaN(3,6); %// define required size
result(:) = randsample([-3 -1 1 3], numel(result), true);

或者,如果原始数字在示例中的间距相等,则可以在一行中解决:

result = 2*randi(4,[3 6])-5; %// "2" and "5" as per your original values

答案 2 :(得分:-1)

您可以使用

  • randperm随机排列