簡體   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