从 opt.leastsq 分配结果变量时出错

Error to allocate result variables from opt.leastsq

我正在设置一个内部定位系统,当我请求 opt.leastsq 函数时,我在字符串中得到了预期的结果,但它给我一个输出错误。

这是我的代码:

x, y, _ = opt.leastsq(F, x0=[xp, yp], Dfun=J)

上面的代码总是报错:

x, y, _ = opt.leastsq(F, x0=[xp, yp], Dfun=J)
ValueError: not enough values to unpack (expected 3, got 2)

但是当我打印这个函数时:

x = opt.leastsq(F, x0=[xp, yp], Dfun=J)
print(x)

它给了我预期的结果,除了坐标外的数字“2”:

(array([4.6243258 , 4.23836195]), 2)

我很感激谁能帮助我组织我的代码,将第一个值分配给变量 x,将第二个值分配给变量 y。如上所述,避免出现上述错误。

非常感谢您。

感谢 hpaulj 指南,能够调整两个变量“x”和“y”中的结果值。我把我所做的过程留在这里,它工作正常。我希望能对其他有同样问题的人有所帮助。 首先,我提取值并将它们放在另一个变量中,我称之为“posit”

posit, _ = opt.leastsq(F, x0=[xp, yp], Dfun=J)

然后使用“splint”函数设置每个变量的坐标值(“x”和“y”)

x, y = np.split(posit, 2, axis=0)
print("x = ",x)
print("y = ",y)

所以我得到了预期的结果,现在能够准确地在“x”和“y”坐标中分别处理这些值。

x =  [3.40314229]
y =  [0.79129237]