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

3 views (last 30 days)
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?

Answers (1)

KSSV
KSSV on 18 Nov 2016
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.

Categories

Find more on Debugging and Analysis in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!