我需要生成一个介于.0000001和1之间的随机数,我一直在使用rand(1),但这只给我4个小数点,有没有其他方法可以做这一代?
谢谢!
答案 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