在dynare / Matlab中使用“@#”

时间:2013-08-06 05:16:20

标签: matlab economics

我正试图在dynare(Matlab的一个包)中处理DSGE模型中的Zero Lower Bound。我发现了一篇论文,在ZLB上开发了一种随机模拟算法,我找到了一些作者的代码,但我无法解释部分代码。我到处寻找答案。这就是代码的样子:

@#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 个答案:

答案 0 :(得分:2)

这与Macro-processing language语法有关。此链接讨论表达式,指令,典型用法,并比较MATLAB / Octave循环与宏处理器循环。请参阅此pdf中有关Dynare宏处理器语法和典型用法的更多信息。

答案 1 :(得分:0)

您可以使用Dynare的savemacro命令行选项运行代码,例如

dynare mymodel.mod savemacro=final_mod_file.txt onlymacro nolinemacro

这将编写预处理器在将宏语言命令解析为final_mod_file.txt文件后创建的常规可读Dynare模型代码。有关命令行选项的更多详细信息,请参阅Dynare手册。