2010-11-24 5 views
0

Ich versuche 16 Dezimalstellen eines Ergebnisses anzuzeigen. Der Code Ich habe ist diesesMATLAB: ??? Undefinierte Funktion oder Methode 'sprint' für Eingabeargumente vom Typ 'char'

clear x; 
x = 0.245; 
1-x+1/2*x.^2-1/6*x.^3+1/24*x.^4 
sprint('%0.16f', ans) 

Matlab geben Sie mir diese Antwort

ans = 

0.7827 

??? Undefined function or method 'sprint' for input arguments of type 'char'. 

Ich habe zwei Fragen:

  1. Was passiert? Ich denke, ich habe es vorher benutzt und ich hatte keine Probleme mit 'sprintf' für ein Ergebnis mit mehreren Dezimalstellen.
  2. Was kann ich tun, um mehr Dezimalstellen anzuzeigen?

Vielen Dank!

+0

Bitte bearbeiten Sie Ihren Kommentar erneut, so dass Ihr Matlab-Code als Code angezeigt wird - durch vier Leerzeichen im Editor einrücken. –

+1

http://en.wikipedia.org/wiki/RTFM !!! http://en.wikipedia.org/wiki/RTFM !!! http://en.wikipedia.org/wiki/RTFM !!! – Mikhail

+2

'Undefinierte Funktion oder Methode X' bedeutet normalerweise' X ist falsch geschrieben' – Jonas

Antwort

4

sprintf formatiert Daten in eine Zeichenfolge; Es wird nicht zur Ausgabe angezeigt. Außerdem ist es sprintf, nicht sprint, das ist die Funktion, die Sie eingegeben haben - und darüber beschwert sich MATLAB. (Es weiß nicht, was sprint ist, aber es weiß über sprintf.)

Wenn Sie ANS zu einer Zeichenfolge als Zahl auf 16 Dezimalstellen speichern möchten, verwenden Sie sprintf. Um es nur anzuzeigen, was ich denke, was Sie wollen, verwenden Sie stattdessen printf. In jedem Fall ist das Problem klar; Sie haben die f in sprintf vergessen!

1

Nun, ich denke 'VPA' das mir helfen

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) 

EDIT mehr Dezimalstellen zu zeigen: und dies ist die Matlab Antwort:

expresion = 

0.7827 


ans = 

.7827116041927082 
1

Ich glaube, Sie nicht tat Verwenden Sie zuvor sprint. Es gibt keine intrinsische MATLAB-Funktion namens sprint, Sie sollten sprintf verwenden.

Verwandte Themen