BEAR工具包在mac平台运行的bug修复

欧洲央行基于MATLAB平台开发的BEAR(贝叶斯估计、分析和回归)工具箱是一个综合(面板)VAR模型工具箱,它通过图形交互(GUI)和Excel的输入-输出实现VAR模型的估计、预测,极大简化了用户操作。

BEAR工具箱的下载地址:

BEAR工具箱的介绍:

BEAR的GUI界面

BEAR的GUI界面.jpg

BEAR的输出结果图

脉冲响应图
无条件预测图

BEAR在mac系统上运行会出现如下报错:

Error using copyfile
cp: /Users/SEYI/Downloads/toolbox 4.2/files/results.xlsx: No such file or directory

Error in initexcel (line 7)
copyfile(sourcefile,destinationfile);

Error in bear_toolbox_main_code (line 109)
initexcel;

报错原因:

  • GUI中输入的模型设定参数会被写入files文件夹下一个名为results.xlsx的Excel文件中,该Excel文件接下来会被相应程序复制到results文件夹下,并重新命名为results_uesr.xlsx以替换resuls文件夹下原有的results_uesr.xlsx文件(即初始化参数设定)。

  • GUI输入的参数在写入Excel文件时使用了xlswrite函数,该函数在macOS系统无法导出xlsx文件。files文件夹下因此不存在results.xlsx文件。结果就出现cp: /Users/SEYI/Downloads/toolbox 4.2/files/results.xlsx: No such file or directory的错误

解决办法:

  • 参考Dynare论坛上一位网友给出的办法。在mathworks官网下载xlwrite函数文件(下载地址),将其保存BEAR工具箱的文件夹中。

  • 修改files文件夹下所有使用xlswrite函数的m文件,将其替换为xlwrite函数。以files文件下的excelrecord1.m为例:该文件的倒数二行代码为:

xlswrite([pref.datapath '\results\' pref.results_sub '.xlsx'],estimationinfo,'estimation info','C2');

将上述代码修改如下:

xlwrite([pref.datapath '\results\' pref.results_sub '.xlsx'],estimationinfo,'estimation info','C2');
  • 由于files文件夹中使用xlswrite函数的文件不止一个(大概十来个,其中,excelrecord1.m-excelrecord9.m均使用了xlswrite函数),因此需要通过运行-报错逐个找出并进行替换。

注:该bug修复在MATLAB 2015b平台亲测可行。在MATLAB 2018b平台上,由于java文件冲突,xlswrite函数无法正常使用,bug暂未解决。在MATLAB 2015b平台上运行时,先运行xlswrite函数文件夹中的示例文件:Test_xlWrite.m,以载入相应的java文件,后运行BEAR工具包主程序。

你可能感兴趣的:(BEAR工具包在mac平台运行的bug修复)