Python scipy从matlab fminsearch错误中优化fmin

时间:2014-04-18 01:56:45

标签: python matlab

我正在将这个matlab函数句柄转换为python,并在python中收到此错误(ValueError:使用序列设置数组元素。)。如果出现明显的错误,我对python很新。

在matlab中:

P = [1 1; 6 1; 6 5]
fh = @(x) sqrt(sum((ones(3,1)*x - P).^2, 2))
[x,fval] = fminsearch(@(x) max(fh(x)),[0 0])

在python中:

P = np.matrix([[1, 1],[ 6, 1],[ 6, 5]])
fh = lambda x:np.sqrt(sum(np.power((np.ones((3,1))*x - P),2),axis = 0))
xopt = scipy.optimize.fmin(func=fh,x0 = np.matrix([0, 0]))

代码在matlab中工作,但在python中没有。谢谢。

1 个答案:

答案 0 :(得分:0)

在您的matlab代码中,fminsearch正在最小化max的{​​{1}}。因此,在Python代码中,传递给fh(x)的{​​{1}}也应该是func的{​​{1}}:

fmin

产量

max