我正在尝试使用额外的参数(在示例中称为“data”)执行scipybroyden1函数,代码如下:
data = [radar_wavelen, satpos, satvel, ellipsoid_semimajor_axis, ellipsoid_semiminor_axis, srange]
target_xyz = broyden1(Pixlinexyx_2Bsolved, start_xyz, args=data)
def Pixlinexyx_2Bsolved(target, *data):
radar_wavelen, satpos, satvel, ellipsoid_semimajor_axis, ellipsoid_semiminor_axis, srange = data
print target
print radar_wavelen, satpos, satvel, ellipsoid_semimajor_axis, ellipsoid_semiminor_axis, srange
pixlinenyx_2Bsolved是我要查找其根的函数。在
start xyz是对解决方案的初步猜测:
^{pr2}$而数据是包含大量数字的列表,将在PixlinExx bsolved函数中使用:
data = [0.056666, [5147114.2523595653, 1584731.770061729, 4715875.3525346108], [5162.8213179936156, -365.24378919717839, -5497.6237250296626], 6378144.0430000005, 6356758.789000001, 850681.12442702544]
作为下一个函数的第二行调用时出错的broyden1:
target_xyz = broyden1(Pixlinexyx_2Bsolved, start_xyz, args=data)
File "<string>", line 5, in broyden1
TypeError: __init__() got an unexpected keyword argument 'args'
我做错什么了?在
scipy的issue-tracker也有类似的问题,包括使用python的functools-模块(这里:PEP 309 Partial Function Application )的解决方案。在
基于上述链接和docs的原始问题的小示例:
输出
^{pr2}$相关问题 更多 >
编程相关推荐