如何将 Matlab 中的 ppval 和 @() 翻译成 Python 等价物?
How translate ppval and @() in Matlab to Python equivalent?
我有以下代码:
from scipy.interpolate import UnivariateSpline
from scipy.optimize import fmin
a = UnivariateSpline(b,c) #Python
d = fmins(@(t) -ppval(a,t), someexpression); #Matlab where fmin is equivalent to fmins
如何翻译成Python3?
fmin的文档告诉我们,它的第一个参数必须是函数,第二个参数是初始值,所以和MATLAB完全一样。在那种情况下,你应该可以调用
d = fmin(lambda x: -a(x), someexpression)
@(t) -ppval(a,t)
在Matlab中是一个匿名函数
您可以在 python 中使用 lambda function 类似地表示事物。
通过示例 here 我看到 UnivariateSpline
的输出
是可调用的,那么 python 类似的是 lambda t: -a(t)
.
但是你会有更多的问题 fmins
没有定义然后你可能想检查 scipy.optimize 包中的替代品。
我有以下代码:
from scipy.interpolate import UnivariateSpline
from scipy.optimize import fmin
a = UnivariateSpline(b,c) #Python
d = fmins(@(t) -ppval(a,t), someexpression); #Matlab where fmin is equivalent to fmins
如何翻译成Python3?
fmin的文档告诉我们,它的第一个参数必须是函数,第二个参数是初始值,所以和MATLAB完全一样。在那种情况下,你应该可以调用
d = fmin(lambda x: -a(x), someexpression)
@(t) -ppval(a,t)
在Matlab中是一个匿名函数
您可以在 python 中使用 lambda function 类似地表示事物。
通过示例 here 我看到 UnivariateSpline
的输出
是可调用的,那么 python 类似的是 lambda t: -a(t)
.
但是你会有更多的问题 fmins
没有定义然后你可能想检查 scipy.optimize 包中的替代品。