2013-03-04 15 views
6

我有R.我用包'R.matlab'將數據轉換MATLAB的像這樣數據的大數據矩陣:如何獲得R數據到MATLAB矩陣

writeMat(con="...filepath", x=data) 

我有沒有MATLAB的經驗,請耐心等待:

當我將數據加載到matlab中時,它說我有一個1x1結構。

我想把它變成矩陣形式。我試過:

data=struct2cell(x) 

但這看起來不太對。數據是十進制數值的btw。

+2

什麼是R中的數據矩陣類?它是數字矩陣還是數據框?還有什麼你的意思是「看起來不太正確」?究竟是什麼問題? – yuk 2013-03-04 16:28:41

+0

根據發佈指南,請提供一個小的,可重現的數據樣本,包括'typeof'的信息。 – 2013-03-04 17:01:34

回答

6

它看起來像你的data變量在R是一個數據幀。先嚐試寫墊文件之前將其轉換爲一個矩陣:

writeMat(con="...filepath", x=as.matrix(data)) 

可能要另一種方法是單元陣列轉換在MATLAB中的矩陣:

datanum = cell2mat(data'); 
+0

謝謝,這是因爲我的數據是一個data.frame。 :) – bdeonovic 2013-03-04 19:02:54

1

如果您正在使用Jupyter筆記本。我認爲你必須做的就是首先使用

install.packages(c('R.matlab'), repos='http://cran.us.r-project.org') 

然後實現使用

library(R.matlab) 

後來這個庫安裝R.matlab庫什麼,你可能有一個數據幀R中說resi

#Save in Matlab v6 format with 'writeMat' 
writeMat("resi.mat", labpcexport = resi) 

我現在去Matlab,並通過將結構轉換爲單元格,然後將單元格轉換爲矩陣作爲

resi=cell2mat(struct2cell(load('resi.mat'))) 

我希望幫助