MATLAB:???未定义的函数或方法'sprint'用于'char'类型的输入参数

时间:2010-11-24 16:46:45

标签: matlab char printf decimal

我试图显示结果的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'.

我有两个问题:

  1. 会发生什么?我想我之前使用过它,并且我对'sprintf'没有任何问题,只显示几位小数的结果。
  2. 如何显示更多小数位?
  3. 谢谢!

3 个答案:

答案 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