How should I pick input for jocabian() function im this case?

3 次查看(过去 30 天)
I want to calculate the gradient for a user-defined function using the jocabian() function.In the subfunction fcn, I pick subset from a larger parameter vector that is defined in the main program like
function fm = fcn(b)
``````
global T T_z T_e zt et
teta =0;
zt =b(1:T_z); % Line-7 fcn%
et =b(1+T_z:T_z+T_e);
dify =zeros(T,T);
````
As one can see, [zt,et] are parameter I define in the subfunction fcn and on which I calculate the gradient. However, when I feed the input argument like the following and run the program,
[b,fun,flag] = fminunc(@cov,b0);
v = [zt,et]';
dfb = jacobian(fcn,v);
Matlab warned me that
Error using fcn (line 7)
Not enough input argument
I remark the location of error in the fcn function.I don't know why there is a problem. The definition of both et and zt seems without problem.Do I miss something?

回答(1 个)

KSSV
KSSV 2016-11-18
Check the line:
dfb = jacobian(fcn,v);
In the above fcn is a function. You have to give input b to the function, which you have not.

类别

Help CenterFile Exchange 中查找有关 Debugging and Analysis 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by