如何解决保存在字符串中的表达式?
How to solve a expression saved in a string?
我想解决保存在字符串中的表达式。我尝试了以下方法:
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 版本,否则不建议将符号表达式作为字符串求值。来自 sym
的当前 (R2015b) 文档:
Support of strings that are not valid variable names and do not define a number will be removed in a future release. To create symbolic expressions, first create symbolic variables, and then use operations on them.
其次,使用表达式中包含的变量来定义表达式,例如 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
或:
syms x
y(x) = cos(x);
yout = y(30)
我想解决保存在字符串中的表达式。我尝试了以下方法:
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 版本,否则不建议将符号表达式作为字符串求值。来自 sym
的当前 (R2015b) 文档:
Support of strings that are not valid variable names and do not define a number will be removed in a future release. To create symbolic expressions, first create symbolic variables, and then use operations on them.
其次,使用表达式中包含的变量来定义表达式,例如 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
或:
syms x
y(x) = cos(x);
yout = y(30)