Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python scipy从matlab fminsearch错误中优化fmin_Python_Matlab - Fatal编程技术网

Python scipy从matlab fminsearch错误中优化fmin

Python scipy从matlab fminsearch错误中优化fmin,python,matlab,Python,Matlab,我正在将这个matlab函数句柄转换为python,并收到这个错误值error:用序列设置数组元素。在python中。我对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,

我正在将这个matlab函数句柄转换为python,并收到这个错误值error:用序列设置数组元素。在python中。我对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中工作。谢谢。

在您的matlab代码中,fminsearch正在最小化fhx的最大值。因此,在Python代码中,传递给fmin的func也应该是fh的max:

屈服

Optimization terminated successfully.
         Current function value: 3.201562
         Iterations: 117
         Function evaluations: 222
[ 3.50007127  2.99991092]
Optimization terminated successfully.
         Current function value: 3.201562
         Iterations: 117
         Function evaluations: 222
[ 3.50007127  2.99991092]