この質問はこれに続くものですが、前の質問を知らなくても答えられるので、新しい質問を投稿するのが方法だと思いました(そうでない場合は申し訳ありません)。前の質問で、.adoファイルの最後にMataコードを置くと、ローカル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ファイルで実行しても、エラーは発生しません。ここで何が欠けていますか?前もって感謝します。