我想解决保存在字符串中的表达式。我尝试了以下方法:
x=sym('cos(x)');
plot(x)
或
x=sym('cos(30)');
simplify(x);
两种情况都没有显示结果。
答案 0 :(得分:3)
尝试
x = sym('cos(x)');
ezplot(x);
和
x = sym('cos(30)');
eval(x);
答案 1 :(得分:0)
首先,除非您使用的是10年前版本的Matlab,否则不推荐将符号表达式作为字符串进行评估。来自sym
的当前(R2015b)文档:
将来的版本中将删除对无效变量名称且未定义数字的字符串的支持。要创建符号表达式,首先要创建符号变量,然后对它们使用操作。
其次,使用该表达式中包含的变量(例如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)