Filter löschen
Filter löschen

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

1 Ansicht (letzte 30 Tage)
Lu zhang
Lu zhang am 17 Nov. 2016
Beantwortet: KSSV am 18 Nov. 2016
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?

Antworten (1)

KSSV
KSSV am 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.

Kategorien

Mehr zu Debugging and Analysis finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by