关于Matlab中的随机数发生器
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
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;
...