用(-1,1)之间的随机值填充矩阵

时间:2017-09-19 01:31:44

标签: matlab random

我是matlab的新手,并试图学习如何模拟随机数。

是否有一种简单的方法可以创建一个10x20数组,其中填充了统一(-1,1)分布中的随机数。

我见过rand函数,但我不确定如何将统一(0,1)分布更改为(-1,1)

2 个答案:

答案 0 :(得分:1)

我们实际上只能使用不同的数学运算来变换(0,1)的间隔,并且仍然可以得到均匀的分布。

所以你必须这样:

result = rand(10,20).*2-1

要检查它是否真的仍然统一让我们做下一个:

res = rand(10000).*2-1;
histogram(res)

你可以看到它仍然是统一的。

enter image description here

有一些关于随机数的技巧(实际上它是伪随机数),你可以得到相同的随机数'重启MATLAB后的结果。了解此herehere

答案 1 :(得分:0)

您可以使用Matlab rand文档中给出的以下公式来获得任意数字间隔之间的随机数:

r = a + (b-a).*rand(N,1)

对于(-1,1)间隔和数组大小为(10,20)的情况,应该是:

r = -1 + (1+1).*rand(10,20)

参考文献: rand Matlab official documentation