关于Matlab中的随机数发生器

关于Matlab中的随机数发生器,matlab,random,Matlab,Random,matlab中的rand函数生成0-1之间的随机数,空格为0.0001。有没有办法扩大这个空间,使生成的数字只保留到小数点后的第一位或第二位??谢谢你的建议。我知道Matlab会生成等距随机数。如果要加宽精度步长,可以尝试将rand乘以某个值“a”,给出0.0001*a的间距,然后选择小于1的数字。您可以使用round功能: Y=四舍五入(X,N)到N位数: N>0:四舍五入到小数点右侧的N位。 N=0:四舍五入到最接近的整数。 N

matlab中的
rand
函数生成0-1之间的随机数,空格为0.0001。有没有办法扩大这个空间,使生成的数字只保留到小数点后的第一位或第二位??谢谢你的建议。

我知道Matlab会生成等距随机数。如果要加宽精度步长,可以尝试将
rand
乘以某个值“a”,给出0.0001*a的间距,然后选择小于1的数字。

您可以使用
round
功能:

Y=四舍五入(X,N)到N位数: N>0:四舍五入到小数点右侧的N位。 N=0:四舍五入到最接近的整数。 N<0:四舍五入到小数点左侧的N位


您可以使用并除以
10^n
生成
[0,10^n]
之间的伪随机整数:

randTens     = randi([0,10 ])/10;
randHundreds = randi([0,100])/100;
...

我不明白你说的“步骤0.0001”是什么意思。Matlab的默认随机数生成器可以在闭合的内部
[2^-53,1-2^-53]
()上生成所有双精度数字。你指的是Matlab默认只显示四位有效数字的事实吗?谢谢。后期编辑。@Alicia:您没有更新/编辑您的问题。我遇到了以下错误:
round(x,-3)使用舍入太多输入参数时出错。
@Alicia您是否有另一个名为
round
的变量或函数?为什么要在小数点前四舍五入到3位,当
rand
的输出总是在0到1之间时,结果总是零!我意识到这是我的版本的问题<代码>圆形在r2015a中可以正常工作,但在r2013a中不行。另外,在3.43*10^-4的情况下,是否有办法将其四舍五入到3.4*10^-4<在这种情况下,code>round将给我一个0。这是因为您将
T_different
乘以一个小于
0.10
的数字;最大整数和除以的值应相同。试试这个:
T_different*randi([0100])/100+T_lower
。谢谢你的回复。我错误地删除了我以前的评论。但是非常感谢你。
randTens     = randi([0,10 ])/10;
randHundreds = randi([0,100])/100;
...