MATLAB: преобразование типа данных char в символьный тип данных - PullRequest
0 голосов
/ 23 ноября 2010

Кто-нибудь знает, как сделать преобразование из типа данных char в символьный тип данных?Я положил это:

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

и ответ:

ans =

 0


ans =

char

Я ищу числовое значение.Как преобразовать тип данных char в символьный тип данных?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 23 ноября 2010

Выход имеет правильный класс; ваша проблема в вашем синтаксисе. Использование:

class(ans)

вместо

class ans

Первый дает вам класс переменной ans, второй дает вам класс строки "ans".

1 голос
/ 23 ноября 2010

Это то, что вы ищете?

%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
>> 
1 голос
/ 23 ноября 2010

Звучит так, будто вы хотите, чтобы вывод из roundn(...) был символическим выражением.Тем не менее, ROUNDN представляется функцией из Mapping Toolbox , и поэтому я сомневаюсь, что она будет работать с символическими переменными. из 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...