在Matlab中,我们可以做到
x = -10:.1:10;
f = inline('normpdf(x,3,2) + normpdf(x,-5,1)','x');
t = plot(x,f(x))
我们在Python中有类似inline
的功能吗?
答案 0 :(得分:5)
我认为python相当于“Inline”将是lambda
Matlab:
f = inline('normpdf(x,3,2) + normpdf(x,-5,1)','x');
python:
f = lambda x : normpdf(x,3,2) + normpdf(x,-5,1)
# Assuming that normpdf is defined and in scope ;-)
答案 1 :(得分:2)
是的,在iPython笔记本(也许是Enthought Canopy?)中,您可以使用“魔术功能”设置内联
% pylab inline
您必须重新启动内核才能使其生效(至少对于2.0之前的iPython笔记本版本)
答案 2 :(得分:0)
您可以使用eval
,这是一项危险的功能(请参阅例如http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html):
from numpy import *
x = np.arange(0, pi, 0.1)
f = eval('sin') # fill in any function
y = f(x)
或者假设您的结尾中的变量总是被称为x
from numpy import *
x = np.arange(0, pi, 0.1)
y = eval('sin(x)')
答案 3 :(得分:0)
那是不一样的,因为lambda还有其他事情,我只想替换我在GRAD中变量F的值,但是使用'inline',这段代码是matlab的:
F= 3*X**2+2*X*Y+4*(Y-2)**2
GRAD= inline([diff(F,X), diff(F,Y)])