如何增加MATLAB中的位数?

时间:2013-02-19 06:52:41

标签: matlab

我意识到这是一个有点模糊的问题,所以我会尽我所能。如果我有一个像n = 0.783325849821429这样的数字,有没有办法显示更多的小数位?这是用格式很长的。问题是我正在用正弦进行误差估计计算,并且有一个点估计非常接近正弦的实际值,MATLAB将误差计算为0,即使估算不可能完全准确。总是有错误,它对于MATLAB来说太小了。有没有办法让MATLAB考虑更多小数位?

4 个答案:

答案 0 :(得分:3)

您可以随时使用formatted strings

询问更多数字
 fprintf(1, 'n = %.20f\n', n ); % print with 20 digits after the decimal point

然而浮点存储数字的精度有限制 您可以使用eps

测试机器精度
eps( n )

如果您的估算误差小于eps,则估算误差在机器精度范围内且无法测量。

答案 1 :(得分:1)

digitsvpa一起使用(可变精度准确度)。有关变精度算术的更多信息here ...请注意,您需要符号数学工具箱。如果你没有,那么你可以从文件交换中使用John D'Errico的Variable Precision Integer Arithmetic

答案 2 :(得分:0)

如果你使用vpa函数来提高精度,那么它将你的变量作为syms,之后如果你想将这个变量用于其他matlab内部函数,那么它将无法工作因此找到其他方法。

e.g。

a=vpa(a,5) 
a =

[ 1.25, 2.0276, 3.2108, 3.3695, 2.0589, 1.0]

polyval(a,3)

??? Undefined function or method 'isfinite' for input arguments of type
'sym'.

Error in ==> polyval at 54
if isscalar(x) && (nargin < 3) && nc>0 && isfinite(x) &&
all(isfinite(p(:)))

答案 3 :(得分:0)

例如,要获得1000/22的答案,方程式为22/7

位数(1000)

,VPA(22/7)