如何显示一定数量的小数位数
Posted
技术标签:
【中文标题】如何显示一定数量的小数位数【英文标题】:how to show certain number of decimal digits 【发布时间】:2010-11-18 03:18:10 【问题描述】:在Matlab中,如何控制命令窗口显示的小数位数?
例如,
>> x=0.4654
x =
0.4654
如何在命令窗口中将变量x的值分别显示为0.5、0.47、0.465?
谢谢!
【问题讨论】:
Is it possible in matlab to explicitly format the output numbers ?的可能重复 正如 mtwr 所说,您的问题可能在上面的帖子中得到了回答。使用 num2str. 【参考方案1】:我认为没有内置到任意位置的四舍五入,但您可以通过 round(x*10^number of places)/10^number 来实现四舍五入的结果的地方。这会打印出尾随零,如果你想摆脱那些你必须做一个特殊格式的打印,比如 sprintf 到度数,所以在你的情况下,你可以通过这样做得到你想要的结果:
sprintf('%.1f', round(x*10)/10)
sprintf('%.2f', round(x*100)/100)
sprintf('%.3f', round(x*1000)/1000)
希望对你有帮助!
编辑:如果你想为矩阵做这件事,我不确定是否有更好的方法,但你可以循环遍历给定 x 作为矩阵的行:
for i=1:length(x(:,1)),
disp(sprintf('%.2f\t', round(x(i,:)*100)/100))
end
【讨论】:
谢谢!有用!但我想知道如果 x 是一个矩阵怎么办。您回复的方式将在一行中显示所有行,但是我希望在不同的行中显示不同的行,就像在命令窗口中显示矩阵一样。 嘿蒂姆,我不知道如何正确地做到这一点,但你可以通过遍历行来显示它,我编辑了我的答案以包含它。【参考方案2】:您可以使用format
命令控制命令窗口。我建议你看看doc format
,它为你提供了具体的选择。
如果您需要更高的精度,最好使用disp
和/或舍入函数,例如:z = round(x/y)*y
【讨论】:
【参考方案3】:更改格式。
format shortG
【讨论】:
以上是关于如何显示一定数量的小数位数的主要内容,如果未能解决你的问题,请参考以下文章