我想从一个EViews (点式和点击计量经济软件,我很遗憾地被迫使用)数据库导入数据直接进入MATLAB,而没有写入任何临时文件到磁盘。当然,将一个系列导出到CSV或Excel并随后导入MATLAB是很简单的,但是对于大量的系列来说,这是效率低下的,而且不允许自动化。
发布于 2016-02-10 04:46:16
这在EViews网站上的一个文档中得到了介绍:Eviews自动化。在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控件句柄后插入循环。
还请注意,这并不适用于所有版本的Eview。如果您有困难,首先与制造商联系以获得修补程序。
https://stackoverflow.com/questions/35307002
复制相似问题