如何将数据从EViews直接导入MATLAB(无需将任何内容写入磁盘)

时间:2016-02-10 04:46:17

标签: matlab activex eviews

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

1 个答案:

答案 0 :(得分:1)

这在EViews网站上的文档中有所介绍:Eviews COM Automation。从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。如果您遇到困难,请先与制造商联系以获取补丁。

相关问题