2010-11-24 122 views
0

我试图显示结果的16位小数位。我把代码是这样的MATLAB:???对'char'类型的输入参数未定义函数或方法'sprint'

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'. 

我有两个问题:

  1. 发生什么事?我想我以前用过它,并且我没有用'sprintf'来显示带有小数位的结果的问题。
  2. 我能做些什么来显示更多的小数位?

谢谢!

+0

请重新编辑您的评论,以便您的Matlab代码在编辑器中以四个空格显示为代码缩进。 – 2010-11-24 16:48:54

回答

4

sprintf将数据格式化为字符串;它不显示它的输出。此外,它是sprintf,而不是sprint,这是您输入的函数 - 而MATLAB正在抱怨。 (它不知道什么是sprint,但它知道的是sprintf。)

如果您的意思是将ans保存为字符串作为数字到16位小数,请使用sprintf。为了只显示它,我认为是你想要的,用printf代替。无论哪种情况,问题都很清楚。你忘了fsprintf

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 
1

我想你没有之前使用sprint。没有MATLAB内在函数sprint,您应该使用sprintf

相关问题