我试图显示结果的16位小数。我提出的代码就是这个
clear x;
x = 0.245;
1-x+1/2*x.^2-1/6*x.^3+1/24*x.^4
sprint('%0.16f', ans)
Matlab给我这个答案
ans =
0.7827
??? Undefined function or method 'sprint' for input arguments of type 'char'.
我有两个问题:
谢谢!
答案 0 :(得分:4)
sprintf
将数据格式化为字符串;它不会显示输出。此外,它是sprintf
,而不是sprint
,这是你输入的函数 - 而MATLAB正在抱怨。 (它不知道sprint
是什么,但它知道sprintf
。)
如果您要将ans作为数字保存到16位小数,请使用sprintf
。要显示它,我认为是您想要的,请改用printf
。在任何一种情况下,问题都是明确的;您忘记了f
中的sprintf
!
答案 1 :(得分:1)
好吧,我认为'vpa'这有助于我显示更多的小数位
clear x;
clear expresion;
x = 0.245;
expresion = 1-x+1/2*x.^2-1/6*x.^3+1/24*x.^4
%sprint('%0.16f', ans)
vpa(expresion,16)
修改强> 这是matlab的答案:
expresion =
0.7827
ans =
.7827116041927082
答案 2 :(得分:1)
我认为您之前没有使用sprint
。没有名为sprint
的MATLAB内在函数,您应该使用sprintf
。