2

我正在尝试在 dynare(Matlab 的一个包)中处理 DSGE 模型中的零下限。我在 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;

@# 的用法是如此神秘,我找不到它的单一用法。我已经运行了代码并且它可以工作。

4

2 回答 2

2

这与宏处理语言语法有关。此链接讨论表达式、指令、典型用法,并将 MATLAB/Octave 循环与宏处理器循环进行比较。在此pdf中查看有关 Dynare 宏处理器语法和典型用法的更多信息。

于 2013-08-06T05:39:04.707 回答
0

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

dynare mymodel.mod savemacro=final_mod_file.txt onlymacro nolinemacro

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

于 2015-08-20T13:09:48.903 回答