2013-03-04 22 views
6

Ho una grande matrice di dati in R. Ho usato il pacchetto 'R.matlab' per convertire i dati a MATLAB dati in questo modo:Come ottenere i dati R in una matrice di MATLAB

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

non ho alcuna esperienza con MATLAB così per favore sii paziente con me:

Quando carico i dati in MATLAB, dice che ho una struttura 1x1.

Mi piacerebbe ottenere questo in una forma matrice. Ho provato:

data=struct2cell(x) 

ma che non sembra abbastanza giusto. I dati sono numeri decimali valutati btw.

+2

Qual è la sua classe di matrice dei dati in R? È una matrice numerica o un frame di dati? Inoltre cosa intendi per "non sembra giusto"? Qual è esattamente il problema? – yuk

+0

In base alle linee guida per la pubblicazione, fornire un campione piccolo e riproducibile dei dati, comprese le informazioni su 'typeof'. –

risposta

6

Sembra che la variabile data in R sia un frame di dati. Prova prima di convertirlo in una matrice prima di scrivere file di mat:

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

Un altro modo è possibile è quello di convertire la matrice cellulare alla matrice in MATLAB:

datanum = cell2mat(data'); 
+0

Grazie, perché i miei dati erano un data.frame. :) – bdeonovic

1

Se si utilizza Jupyter notebook . Penso che quello che dovete fare è installare prima biblioteca R.matlab utilizzando

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

quindi implementare questa libreria utilizzando

library(R.matlab) 

In seguito, si può avere un dataframe in R dire resi

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

Ora vado su Matlab e lo chiamo in quella particolare directory convertendo la struct in cell e quindi cell in matrix come

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

Mi auguro che aiuta

Problemi correlati