我是matlab的新手,并试图学习如何模拟随机数。
是否有一种简单的方法可以创建一个10x20
数组,其中填充了统一(-1,1)
分布中的随机数。
我见过rand函数,但我不确定如何将统一(0,1)
分布更改为(-1,1)
。
答案 0 :(得分:1)
我们实际上只能使用不同的数学运算来变换(0,1)的间隔,并且仍然可以得到均匀的分布。
所以你必须这样:
result = rand(10,20).*2-1
要检查它是否真的仍然统一让我们做下一个:
res = rand(10000).*2-1;
histogram(res)
你可以看到它仍然是统一的。
有一些关于随机数的技巧(实际上它是伪随机数),你可以得到相同的随机数'重启MATLAB后的结果。了解此here和here。
答案 1 :(得分:0)
您可以使用Matlab rand
文档中给出的以下公式来获得任意数字间隔之间的随机数:
r = a + (b-a).*rand(N,1)
对于(-1,1)
间隔和数组大小为(10,20)
的情况,应该是:
r = -1 + (1+1).*rand(10,20)