有誰知道如何從char數據類型轉換爲符號數據類型? 我把這個:MATLAB:從char數據類型轉換爲符號數據類型
x = 0.49;
n = 22;
roundn(exp(x*49/200),n)
class ans
答案是:
ans =
0
ans =
char
I'm尋找數值。如何將char數據類型轉換爲符號數據類型?
謝謝。
有誰知道如何從char數據類型轉換爲符號數據類型? 我把這個:MATLAB:從char數據類型轉換爲符號數據類型
x = 0.49;
n = 22;
roundn(exp(x*49/200),n)
class ans
答案是:
ans =
0
ans =
char
I'm尋找數值。如何將char數據類型轉換爲符號數據類型?
謝謝。
輸出是正確的類;你的問題在你的語法中。用途:用於
class(ans)
代替
class ans
第一個給你的類變量ans
,第二給你的類字符串「答」的。
聽起來好像你想從roundn(...)
輸出是一個符號表達式。但是,ROUNDN似乎是Mapping Toolbox中的一個函數,因此我懷疑它是否適用於符號變量。
我想,也許使用VPA從Symbolic 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
這是你在找什麼?
%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
>>
哦......謝謝!但我仍然有問題。 – Peterstone 2010-11-23 19:27:48
假設通過「問題」你的意思是答案仍然是0,那是因爲它是0.exp(0.049 * 49/200)= 1.1276`和`roundn(1.1276,22)= 0`。一探究竟。我有一種感覺,你不正確地使用`roundn`,你在這裏變成10^22。 – eykanal 2010-11-23 19:30:15