1

我想将 EViews(我很遗憾被迫使用的点击式计量经济软件)数据库中的数据直接导入 MATLAB,而不将任何临时文件写入磁盘。当然,将系列导出为 CSV 或 Excel 并随后将其导入 MATLAB 是很简单的,但这对于大量系列来说效率低下,并且不允许自动化。

4

1 回答 1

1

这在 EViews 网站上的一个文档中有所介绍:Eviews COM 自动化。在 MATLAB 中,创建 ActiveX 控件的句柄,并使用该句柄在内存中来回传递数据。

% launch EViews ActiveX server
hm = actxserver('Eviews.Manager') ;
h = hm.GetApplication(0) ;

% load file
h.Run(sprintf('wfuse %s',myPath)) ;

% dates
h.Run(sprintf('string startDate = %s.@first',myVar)) ;
startDate = h.Get('startDate') ;
h.Run(sprintf('string endDate = %s.@last',myVar)) ;
endDate = h.Get('endDate') ;

% drop consecutive leading/trailing missing observations
h.Run(sprintf('smpl %s %s',startDate,endDate)) ;

% transfer values
values = cell2mat(h.GetSeries(myVar)) ;

h.release ;

请注意,有一些启动时间,因为必须等待 Eviews 在后台启动才能使用,因此如果要导入多个系列,建议在创建句柄后插入循环到ActiveX 控件。

另请注意,这不适用于所有版本的 Eviews。如果您有困难,请先联系制造商获取补丁。

于 2016-02-10T04:46:16.753 回答