八度中的随机数

时间:2013-05-05 06:44:13

标签: matlab random octave

我需要生成一个介于.0000001和1之间的随机数,我一直在使用rand(1),但这只给我4个小数点,有没有其他方法可以做这一代?

谢谢!

3 个答案:

答案 0 :(得分:4)

来自Octave docs

  

默认情况下,Octave以人类可读的形式显示5位有效数字(选项'short'与'loose'格式的矩阵配对)。

所以这可能是你打印价值的方式而不是价值本身的问题。

同一页面显示除short之外的其他输出格式,您可能希望查看的格式为long,提供15位有效数字。

还有output_precision,可根据here设置:

old_val = output_precision (7)
disp (whatever)
old_val = output_precision (old_val)

答案 1 :(得分:0)

将output_precision设置为7,它应该没问题:)

答案 2 :(得分:0)

设置输出精度无济于事,因为理论上这个数字仍然可以小于.0000001但你只会显示前7位数字。最简单的方法是:

req=0;
while (req<.0000001)
 req=rand(1);
end

这可能会让你陷入循环但它会产生正确的数字。要显示所有小数,您还可以使用以下命令:

format long

这将显示15个小数位。切换回去:

formay short