Я хочу оптимизировать функцию с параметрами в matlab. Вот как я это делаю с функцией, когда я хочу оптимизировать только один параметр:Функции анонимуса в matlab
fminsearch(@(x) fun(x, 3, 1, 2, 3),2);
Он отлично работает. Однако, когда я хочу, чтобы оптимизировать два параметра моей функции:
fminsearch(@(x, y) fun(x, y, 1, 2, 3),[2,2]);
Я получаю следующее сообщение об ошибке:
Error using test>@(x,y)fun(x,y,1,2,3) (line 7)
Not enough input arguments.
Я не понимаю, что случилось с моим кодом. Это похоже на то, что 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])
Это именно то, что я делаю с моей функции весело, тем не менее, это Безразлично» т работы. Зачем?
Это не то, что вы делаете *, MathWorks использует '@ (x)', в то время как вы используете '@ (x, y)' в поле 'fminsearch' – Adriaan