【问题标题】:MATLAB: ??? Undefined function or method 'sprint' for input arguments of type 'char'马赛克:??? 'char' 类型的输入参数的未定义函数或方法 'sprint'
【发布时间】:2010-11-24 16:46:44
【问题描述】:

我试图显示结果的小数点后 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. 如何显示更多小数位?

谢谢!

【问题讨论】:

标签: matlab char printf decimal


【解决方案1】:

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

如果您打算将字符串保存为小数点后 16 位的数字,请使用sprintf。要仅显示它,我认为这是您想要的,请改用printf。无论哪种情况,问题都很明确;你忘记了sprintf中的f

【讨论】:

    【解决方案2】:

    嗯,我认为 '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
    

    【讨论】:

      【解决方案3】:

      我认为您之前没有使用过sprint。没有称为sprint 的MATLAB 内部函数,您应该使用sprintf

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-30
        • 2014-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-29
        相关资源
        最近更新 更多