0

有谁知道如何从 char 数据类型转换为符号数据类型?我把这个:

x = 0.49;
n = 22;
roundn(exp(x*49/200),n)
class ans

答案是:

ans =

 0


ans =

char

我正在寻找数值。如何将 char 数据类型转换为符号数据类型?

谢谢你。

4

3 回答 3

2

输出是正确的类;你的问题出在你的语法上。利用:

class(ans)

代替

class ans

第一个给你变量的类ans,第二个给你字符串“ans”的类。

于 2010-11-23T19:17:41.017 回答
1

听起来您希望输出roundn(...)是一个符号表达式。但是,ROUNDN似乎是Mapping Toolbox中的一个函数,因此我怀疑它是否适用于符号变量。

我认为也许使用符号工具箱中的VPA是您想要的:

>> 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
于 2010-11-23T19:44:14.597 回答
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
>> 
于 2010-11-23T19:51:08.233 回答