Python中的Matlab内联函数
在Matlab中,我们可以这样做:
x = -10:.1:10;
f = inline('normpdf(x,3,2) + normpdf(x,-5,1)','x');
t = plot(x,f(x))
在Python中,有没有类似于inline
的功能呢?
4 个回答
0
这不是一回事,因为lambda做的事情不同。我只是想用'inline'来替换我变量F中的值在GRAD里,这段代码是用matlab写的:
F= 3*X**2+2*X*Y+4*(Y-2)**2
GRAD= inline([diff(F,X), diff(F,Y)])
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)')
2
是的,在iPython笔记本(可能在Enthought Canopy中也可以),你可以使用一种叫“魔法函数”的方法来设置内联显示。
% pylab inline
你需要重启内核才能让这个设置生效(至少在2.0版本之前的iPython笔记本中是这样)。
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 ;-)