Я хочу решить выражение, сохраненное в строке. Я попытался следующие:Как решить выражение, сохраненное в строке?
x=sym('cos(x)');
plot(x)
или
x=sym('cos(30)');
simplify(x);
Нет результат был показан в любом случае.
Я хочу решить выражение, сохраненное в строке. Я попытался следующие:Как решить выражение, сохраненное в строке?
x=sym('cos(x)');
plot(x)
или
x=sym('cos(30)');
simplify(x);
Нет результат был показан в любом случае.
попробовать
x = sym('cos(x)');
ezplot(x);
и
x = sym('cos(30)');
eval(x);
Во-первых, если вы не используете 10-летнего версии Matlab, оценивая символические выражения в виде строк осуждается. Из текущей (R2015b) документации для sym
:
Поддержка строк, которые не являются допустимыми именами переменных и не определяют номер будет удален в будущем выпуске. Чтобы создать символические выражения, сначала создайте символические переменные, а затем используйте на них операции.
Во-вторых, определение выражения с использованием переменной, содержащейся в этом выражении, например, x=sym('cos(x)');
, является путаным и может привести к проблемам.
Вместо этого, вы должны использовать что-то вроде этого, чтобы создать символическое выражение:
syms x
y = cos(x);
ezplot(y);
Или создать символическую функцию, symfun
:
syms x
y(x) = cos(x);
ezplot(y); % Or: plot(-6:0.1:6,y(-6:0.1:6))
И оценить ваше выражение:
syms x
y = cos(x);
yout = subs(y,x,30) % Note that trigonometric functions take inputs in radians, not degrees
or:
syms x
y(x) = cos(x);
yout = y(30)
Затем используйте vpa
или double
для преобразования yout
переменной точности или форм с плавающей точкой.
Добро пожаловать в SO. Прочтите описание тегов перед их добавлением. – horchler