[英]How to import data from EViews to MATLAB directly (without writing anything to disk)
我想将数据从EViews(我很遗憾不得不使用的点击计量经济学软件)数据库直接导入MATLAB,而无需将任何临时文件写入磁盘。 当然,将序列导出为CSV或Excel并将其随后导入到MATLAB中很简单,但这对于大量序列来说效率不高,并且不允许自动化。
这在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。 如果有困难,请首先与制造商联系以获取补丁。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.