fminsearch有两个变量

时间:2017-04-16 01:56:31

标签: matlab fminsearch

我正在尝试使用fminsearch最小化5变量函数。我只想最小化两个变量的函数。 我试过以下,没有运气:

func = @(x,b) myfunction( x, y, z, a, b ); 
fminsearch(func,[x0,b0]);

x N x M 维度的矩阵, b Y x Z 尺寸,因此尺寸不同。同样适用于起始条件 x0 b0

我已经看到了一些类似的问题,但我仍然无法解决这个问题。

运行脚本时我得到以下输出:

Error using horzcat
Dimensions of matrices being concatenated are not consistent.

1 个答案:

答案 0 :(得分:1)

通常函数fminsearch只允许三个输入:函数句柄,初始值向量和优化选项,如:fminsearch(@fun,x0,options)

幸运的是,有一个小的黑客可以完成,你可以在选项之后添加额外的参数,如:fminsearch(@fun,[x0 b0],options,z,a,b)

如果您没有使用任何选项,则应如下所示:fminsearch(@fun,[x0 b0],[],z,a,b)

请记住,在函数内部,您应该解压缩您的变量ab,例如:

function[obj]=func(x0,z,a,b)

x=x0(1)
y=x0(2)

%rest of the function

end