MATLAB:从char数据类型转换为符号数据类型

时间:2010-11-23 19:03:48

标签: matlab type-conversion data-conversion

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

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

答案是:

ans =

 0


ans =

char

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

谢谢。

3 个答案:

答案 0 :(得分:2)

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

class(ans)

而不是

class ans

第一个为您提供变量ans的类,第二个为您提供字符串“ans”的类。

答案 1 :(得分:1)

听起来你希望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

答案 2 :(得分: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
>>