【发布时间】:2016-05-08 07:18:31
【问题描述】:
我想用matlab中的参数优化一个函数。当我只想优化一个参数时,我是这样使用函数的:
fminsearch(@(x) fun(x, 3, 1, 2, 3),2);
它工作正常。但是,当我想优化我的函数的两个参数时:
fminsearch(@(x, y) fun(x, y, 1, 2, 3),[2,2]);
我收到以下错误:
使用测试出错>@(x,y)fun(x,y,1,2,3)(第 7 行)
输入参数不足。
我不明白,我的代码有什么问题。这类似于 Mathworks 对我的问题的建议: http://www.mathworks.com/help/matlab/ref/fminsearch.html
以下是网站上的示例:
function f = myfun(x,a)
f = x(1)^2 + a*x(2)^2;
x = fminsearch(@(x) myfun(x,a),[0,1])
这正是我对函数 fun 所做的,但它不起作用。为什么?
【问题讨论】:
-
这不是你所做的,MathWorks 使用
@(x),而你在fminsearch中使用@(x,y)
标签: matlab optimization anonymous-function