繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM