matlab 的内置函数 rand
返回的是 0-1 区间上的均匀分布,rand
的参数多是用于设置返回的矩阵的维度大小。
如果要得到 (a, b) 区间上的均匀分布,只需对其做简单的线性变换即可:
a+(b−a)⋅rand
当然对于区间关于 y 轴对称的均匀分布( (−a,a) )有可进一步化简为:
−a+(a−(−a))⋅rand=a(2⋅rand−1)=(rand−12)⋅2⋅a
- (-5, 5):-5+(5-(-5))*rand, (2*rand-1)*5
- (-x, x):-x+(x-(-x))*rand, (2*rand-1)*x