0
我想解決以下matlab問題。我有一個由5個參數和4個作爲數據輸入的變量定義的函數。我把它定義爲這樣的:通過函數句柄
g = @(b)((b(4)*(b(2)*x(:,1) + b(3)*x(:,2) + 1)) + b(5)*x(:,3)*x(:,4).^b(1));
然後我想找到的參數在此功能最小化誤差值,這是我定義爲這樣:
sum_res = @(b)(y-g)'*(y-g); [beta_opt,fval] = fminsearch(sum_res,[1,1]);
我得到以下錯誤消息:
Undefined function 'minus' for input arguments of type 'function_handle'.
Error in @(b)(y-g)'*(y-g)
Error in fminsearch (line 191)
fv(:,1) = funfcn(x,varargin{:});
完美地工作:'X = randn(100,4); y = randn(100,1); (3)* x(:,2)+ 1))+ b(5) 。* X(:,3)* X(:,4)。^ b(1)); (b)(y-g(b))'*(y-g(b)); [beta_opt,fval] = fminsearch(sum_res,[1,1,1,1,1]);' – user2209979 2013-04-22 04:10:33