为什么 fgoalattain 内置函数在 MATLAB 中不起作用?

Why is fgoalattain built-in function not working in MATLAB?

我正在尝试在 MATLAB 中调用 fgoalattain 函数(使用目标实现算法计算函数最小值)。根据文档,它应该如下所示:

[X,FVAL,ATTAINFACTOR] = FGOALATTAIN(@objf_1,x0,goal,weight)

其中 @objf_1objf_1 m 文件中定义的函数的函数句柄,其余是我自己设置的一些参数。它们在任何情况下都不重要,因为显然 MATLAB 对该函数有问题,因为它抛出:

>> rospar_4
Undefined function 'fgoalattain' for input arguments of type 'function_handle'.

Error in rospar_4 (line 29)
[X,FVAL,ATTAINFACTOR] = fgoalattain(@objf_1,x0,goal,weight)

但是,我已经知道该函数在另一个 MATLAB 版本 - R2011b(我使用的是 R2012b)上运行良好,但第一个参数为 char

[X,FVAL,ATTAINFACTOR] = fgoalattain('objf_1',x0,goal,weight)

如果我尝试在我的系统中这样调用它,错误几乎是一样的:

>> rospar_4
Undefined function 'fgoalattain' for input arguments of type 'char'.

Error in rospar_4 (line 29)
[X,FVAL,ATTAINFACTOR] = fgoalattain('objf_1',x0,goal,weight)

知道我是怎么得到这个的吗?

不是内置函数。您需要安装 Optimization toolbox.