这个问题是这个问题的延续,但是由于可以在不知道我之前的问题的情况下回答它,我认为发布一个新问题是解决问题的方法(如果不是这种情况,我很抱歉)。在上一个问题中,有人告诉我,将 Mata 代码放在 .ado 文件的末尾会使本地var2
代码在 Stata 代码中可用。一个最小的例子如下:
program define hello
args var1
local sum_var=`var1'+`var2'
disp `sum_var'
end
mata
void cens_func(todo, x, y, g, H)
{
y = (x-1)^2
}
S = optimize_init()
optimize_init_evaluator(S, &cens_func())
optimize_init_which(S, "min")
optimize_init_params(S, 2)
temp=optimize(S)
st_local("var2",strofreal(temp))
end
不幸的是,它没有运行。我收到无效的语法错误。首先使用 Mata 代码在 .do 文件中运行它,不会导致错误。我在这里想念什么?提前致谢。