我应该在这里使用 eval() 吗?
我已经阅读了 eval() 的正确使用方法,说实话,我无法判断我的用法是否属于“它很好”或“它很糟糕”类别。请指教!
这是我的代码的作用:
f='exp(-x)' %我要使用的函数的字符串
G=GetGradient(f) %象征性地获取函数f在一定映射下的梯度
x=通过其他方式分配的任何%向量x
answer=eval(G) %输出是在点 x 处评估的梯度 G。
对我来说重要的是“答案”,即向量 x 中所有点的梯度函数(以其他方式确定)。 eval 在这里吗?谢谢。
I have read up on the proper use of eval() and to be honest, I can't tell whether my usage falls into the "it's good" or "it's terrible" category. Please advise!
Here is what my code does:
f='exp(-x)' %character string of function that I want to use
G=GetGradient(f) %symbolically gets the gradient of function f under a certain mapping
x=whatever %vector x is assigned through other means
answer=eval(G) %The output is the gradient G evaluated at points x.
The important thing for me is 'answer', the Gradient function at all the points in vector x (determined in some other way). Is eval right here? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议使用以下替代方案,假设
G
在您的示例中是字符串'-exp(-x)'
。 STR2FUNC 将函数字符串转换为匿名函数,然后您可以对其求值照常。编辑:如果
GetGradient
返回符号表达式,您可以使用char
将其转换为字符串。I'd suggest the following alternative, assuming that
G
is, in your example, the string'-exp(-x)'
. STR2FUNC converts your function string into an anonymous function, which you can then evaluate as usual.EDIT: If
GetGradient
returns a symbolic expression, you can convert it to string usingchar
.