我在Matlab中有一個名爲objective
的函數我通過在腳本中編寫[f, df] = objective(x, {@fun1, @fun2, ..., @funN})
來評估函數。功能fun1, fun2, ..., funN
的格式爲[f, df] = funN(x)
。評估存儲在Matlab單元陣列中的函數
裏面objective
我想,在我的單元陣列的每個輸入稱爲fun
,評估使用MATLAB內置函數feval
爲給定功能:
function [f, df] = objective(x, fun)
f = 0;
df = 0;
for i = 1:length(fun)
fhandle = fun(i);
[fi, dfi] = feval(fhandle, x);
f = f + fi;
df = df + dfi;
end
end
我收到以下錯誤評估我objective
。
Error using feval
Argument must contain a string or function_handle.
我不明白如何解決這個錯誤。
謝謝! 但爲什麼不'i'和'j'? – sehlstrom 2013-03-05 12:08:46
@sehlstrom - 查看關於'i'和'j'的鏈接問題。 – Shai 2013-03-05 12:40:44