主程序我就补贴了,太长了。主程序调用callGMM
主程序里面定义以下变量:
theta, delta_it, deltaf_jt : I set initial value of them
x is data
betaXmat is a function of x that is calculated in the main function.
z is instruments.
Function A:
function [var1] = callGMM(theta)
var1 = gmm(theta);
end
Function B
function [var1] = gmm(theta)
moments = getMoments(theta);
objective = moments'*w*moments;
var1 = objective;
end
function C
function [var1] = getMoments(theta)
xi = getXi(theta);
var1 = (z'*xi);
end
function D
function [var1] = getXi(theta) %到这里就出问题了,说undefined variable deltaf_jt,,,,,,,,等等
[deltaf_jt, delta_it] = getDeltasAndV(theta, deltaf_jt, delta_it);
betaX = betaXmat*deltaf_jt;
xi = deltaf_jt - x*betaX;
var1 = xi;
end
不知到这样清楚不。
我尝试了1。把input argment 改称 (theta, delta_it, deltaf_jt, x,betaXmat, z) 被告知too many input arguments
2. global variable 肯定不行
我觉得主要问题就是怎么让子程序用主程序的variable,在这些variable不作为input的情况下???
谢谢拉,叩谢



雷达卡


京公网安备 11010802022788号







