2010-11-24 123 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

相關問題