[分享] MATLAB call R for Windows system

看板R_Language作者 (~烤焦麵包~)時間11年前 (2013/04/15 16:03), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
MATLAB call R function for Windows system 這是我之前工作的時候碰到問題。 我們需要用 MATLAB 去呼叫 R 裡面的某些 library 跟 function 網路上有滿多介紹文的,不過寫得不是很詳細。 我在這邊做個 step by step 的紀錄,也分享給有需要的人。 測試環境:Windows 7 64-bit MATLAB version: 2009b - 2011a R version: 2.11.1 - 2.15.3 (上面幾個版本應該都可以用,至少我的沒出過問題) 1. 開啟 R 安裝 package 'rscproxy'、'rcom' > install.packages('rscproxy') > install.packages('rcom') 接著安裝 R-(D)COM ,要先在 R 裡面下指令 > library('rcom') 接著 R 會要求你安裝 installstatconnDCOM。 > installstatconnDCOM() 完成後使用 rscproxy, rcom 的 library > library('rscproxy') > library('rcom') 2. 下載 MATLAB R-link,解壓縮後開啟 MATLAB 設定 MATLAB_RLINK 的路徑。 網址:http://www.mathworks.com/matlabcentral/fileexchange/5051 把 MATLAB_RLINK 加入 search 的 path 。 下面是這個 package 的幾個主要指令的介紹。 openR - 連結到 R server evalR - 執行 R 的指令 getRdata - 把 R 的資料複製到 MATLAB putRdata - 把 MATLAB 的資料複製到 R closeR - 關閉 R server 3. 實際測試,開啟 MATLAB 輸入 >> openR; % 連結到 R Server >> x=[1:50]; % 在 MATLAB 裡面創造一個向量 x >> putRdata('x',x); % 把向量 x 丟到 R 裡面 >> evalR('y<-sqrt(x)'); % evalR 為一個呼叫 R 計算的函式 >> evalR('plot(x,y)'); % 用 R 畫 x 對 y 的圖 如果成功的話應該會看到像下圖這樣,MATLAB 會跳出一個 R 的 graphics device http://tinyurl.com/d4bpt6n >> closeR; % 記得每次呼叫完都要關起來 如果有出現 ERROR 的話,可以參考下面的 Troubleshooting 或是 Debugview 來幫忙 找出錯誤的原因。 http://www.unt.edu/rss/class/splus/UsingTheRDCOMserver.pdf http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.72.132 ※ 編輯: Chris7462 來自: 1.162.200.224 (04/16 02:02)

04/16 06:08, , 1F
沒用過MATLAB... 不過還是謝謝分享
04/16 06:08, 1F

04/16 14:33, , 2F
應該很少人會有需要用到 MATLAB 呼叫 R 吧 :p
04/16 14:33, 2F

02/05 15:01, , 3F
感謝分享!! 我需要
02/05 15:01, 3F
文章代碼(AID): #1HQxHlDF (R_Language)
文章代碼(AID): #1HQxHlDF (R_Language)