2010-11-23 300 views

回答

2

輸出是正確的類;你的問題在你的語法中。用途:用於

class(ans) 

代替

class ans 

第一個給你的類變量ans,第二給你的類字符串「答」的。

+0

哦......謝謝!但我仍然有問題。 – Peterstone 2010-11-23 19:27:48

+2

假設通過「問題」你的意思是答案仍然是0,那是因爲它是0.exp(0.049 * 49/200)= 1.1276`和`roundn(1.1276,22)= 0`。一探究竟。我有一種感覺,你不正確地使用`roundn`,你在這裏變成10^22。 – eykanal 2010-11-23 19:30:15

1

聽起來好像你想從roundn(...)輸出是一個符號表達式。但是,ROUNDN似乎是Mapping Toolbox中的一個函數,因此我懷疑它是否適用於符號變量。

我想,也許使用VPASymbolic Toolbox是你想要什麼:

>> eq = sym('exp(x*49/200)'); %# A symbolic equation 
>> x = sym(0.49);    %# A symbolic value 
>> n = 22;      %# Number of digits of precision 
>> vpa(subs(eq,'x',x),n)  %# Substitute x and evaluate 

ans = 

1.127553227831349194548  %# ans is a symbolic value 
1

這是你在找什麼?

%char 
expr = '1+exp(1)'; 

%sym 
x = sym(x); 

%number 
xval1 = double(x); 

%rounded number 
xval2 = double(vpa(x, 2)); 

>> n = 22; 
>> expr = exp(x*49/200); 
>> res = subs(expr,x,0.49); 
res = 
    1.1276 
>> class(res) 
res = 
double 
>>