Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要生成一个介于 .0000001 和 1 之间的随机数,我一直在使用 rand(1) 但这只会给我 4 个小数点,还有其他方法可以生成吗?
谢谢!
来自Octave 文档:
默认情况下,Octave 以人类可读的形式显示 5 个有效数字(选项 'short' 与矩阵的 'loose' 格式配对)。
所以这可能是您打印值的方式而不是值本身的问题。
同一页面显示了除 之外的其他输出格式,short您可能想要查看的是long,给出 15 个有效数字。
short
long
还有output_precision可以按照这里设置的:
output_precision
old_val = output_precision (7) disp (whatever) old_val = output_precision (old_val)
设置输出精度无济于事,因为理论上该数字仍然可以小于 0.0000001,但您只会显示前 7 位数字。最简单的方法是:
req=0; while (req<.0000001) req=rand(1); end
这可能会让你陷入一个循环,但它会产生正确的数字。要显示所有小数,您还可以使用以下命令:
format long
这将显示 15 位小数。要切换回去:
formay short
将 output_precision 设置为 7 应该没问题 :)