在MATLAB的变量编辑器中更改十进制数

3
假设我们有如下代码:
a = pi;
b = pi+2;
c = pi*2.2
out = [a b c] 

返回:

out =

    3.1416    5.1416    6.9115

我希望得到这个输出(不对数值进行四舍五入):
out =

    3.14    5.14    6.91

我不想输出这些值。我希望在此处看到它们以2位小数显示:

enter image description here

2
只是为了显示目的还是您要实际四舍五入数字? - Dan
@Dan。是的,那是真的。 - Eghbal
2个回答

5
使用format bank命令可以显示2位小数。更多关于format函数的详细信息请参见文档
如果您想要更改变量在变量编辑器中的显示方式,请查看文档中的此页面

enter image description here

enter image description here


这将打印带有2位小数的值。与我上面显示的一样,在“out”窗口中没有任何更改。 - Eghbal
2
你是在说变量编辑器吗?请看我的修改后的答案。 - am304
1
如果我们不想依赖Matlab格式选项,该怎么办?如果需要3位小数呢? - ironzionlion
2
@ironzionlion,你不能这样做。你必须使用MATLAB中“format”函数支持的格式选项。 - am304

1

如果你只想使用前两位小数,可以在之前的代码中添加这行:

out(:) = str2num(sprintf('%6.2f',out(:))); % 2 = number of decimals

这不是一种完美的解决方案,但它将您的值截断到第二位小数并存储它,擦除后面的小数。您仍然会在末尾有一些零(直到您按照 上述 所述为变量编辑器选择的格式填充为止)。

有更有效的方法将数字舍入到给定的精度,试试这个:round2prec = @(vin,prec) round( vin * 10^prec ) / 10^prec; 然后在控制台中输入 round2prec([0:3]/pi,2) 来查看一个例子;-) - Hoki
4
@Hoki 你知道 round(X,N) 的第二个输入吗?;) 所以 round( vin * 10^prec ) / 10^prec = round( vin, prec) - Robert Seifert
4
我看到在线文档上说Matlab已经提高了它们的功能。这个功能在我使用的R2013a版本里还不存在,所以我不得不想办法自己实现(其实从Matlab 5开始我就一直在这样做了)。但是谢谢你,知道这些信息很好 :) - Hoki
1
@Hoki 哦,好的,我没记得那是一个这么新的功能,但现在你这么说,我想我过去也用过你的解决方法。 - Robert Seifert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接