使用八度的数据在python中进行二次编程

问题描述 投票:2回答:1

我正在将Matlab程序的部分转换为python和octave。

我正在使用octave生成两个矩阵,然后使用oct2py将这些矩阵导入python。我的问题的根源是matlab中的这些行(下面H_combined和f_combined

handles.options =optimset('algorithm','interior-point-convex','Display','off','TolFun',1e-15,'TolX',1e-10,'MaxFunEvals', 1E5);

handles.x_ridge_combined = quadprog(H_combined, f_combined, [], [], [], [], handles.lb_re, handles.ub_re, handles.x_re_0, handles.options);

当前,我正在寻找一个使用python或octave的解决方案,该解决方案将产生类似的输出而无济于事。

我已经尝试从八度'optim'中使用quadprog,但是在x_ridge_combined上得到的输出为'120,1,1,1,...,1',而不是我期望的各种float值。我已经验证过“ H_combined”和“ f_combined”与在matlab中运行时完全相同,但我想八度中的quadprog不能正常工作。

尝试八度音阶方法后,我尝试将值导入python以尝试使用quadprog包。

尝试quadprog,

print(quadprog.solve_qp(H,f))

产生错误

ValueError: Buffer has wrong number of dimensions (expected 1, got 2)

H和f的类型和形状如下:

<class 'numpy.ndarray'> #H
(123, 123)
<class 'numpy.ndarray'> #f
(1, 123)

有人知道为什么我会出现这些错误吗?或关于如何从matlab转换该行的任何其他建议?

谢谢

python matlab octave cvxopt quadprog
1个回答
0
投票

我有完全相同的问题。您最终解决了这个问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.