2013-08-06 49 views
2

我試圖在dynare(Matlab的一個包)中處理DSGE模型中的零下限。我發現一篇論文在ZLB開發了一種隨機模擬算法,我發現了一些作者的代碼,但我無法解釋部分代碼。我到處尋找答案。這是代碼的樣子:在dynare/Matlab中使用「@#」

@#define TShadow = 30 
@#define TIRF = 15  
@#define TSimul = 300 
@#define TDrop = 100  

@#if TShadow > TIRF 
    @#define TInitIRF = TShadow 
@#else 
    @#define TInitIRF = TIRF 
@#endif 

var pi, y, i, shock_pi, shock_nu, shock_i; 
varexo epsilon_pi, epsilon_nu, epsilon_i; 

@#的使用是如此神祕,我無法找到它的單一用法。我已經運行代碼,它的工作原理。

回答

2

這與Macro-processing language語法有關。該鏈接討論表達式,指令和典型用法,並比較MATLAB/Octave循環與宏處理器循環。有關Dynare宏處理器語法和pdf中的典型用法,請參見更多信息。

0

您可以使用Dynare的savemacro命令行選項運行代碼,例如,

dynare mymodel.mod savemacro=final_mod_file.txt onlymacro nolinemacro

這將寫預處理器解決宏語言後創建命令給final_mod_file.txt文件定期可讀Dynare型號代碼。有關命令行選項的更多詳細信息,請參閱Dynare手冊。