如何将R数据导入Matlab矩阵

11

我在R中有一个大的数据矩阵。我使用包'R.matlab'将数据转换为matlab数据,如下所示:

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

我没有matlab的经验,请耐心等待:

当我将数据加载到matlab中时,它显示我有一个1x1结构体。

我想将其转换为矩阵形式。我尝试过:

data=struct2cell(x) 

但是那看起来不太对。数据是十进制数值。

2
你在R中的数据矩阵类是什么?它是数值矩阵还是数据框架?另外,你所说的“看起来不太对劲”是什么意思?具体问题是什么? - yuk
根据发布指南,请提供一个包含 typeof 信息的小型可重现数据示例。 - Carl Witthoft
2个回答

9

看起来你的R语言中的data变量是一个数据框。在将其写入mat文件之前,尝试先将其转换为矩阵:

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

在MATLAB中,您可能希望使用另一种方法将单元数组转换为矩阵:

datanum = cell2mat(data');

谢谢,问题出在我的数据是一个数据框。 :) - bdeonovic

1
如果您正在使用Jupyter笔记本电脑,我认为您需要做的第一步是安装R.matlab库。
install.packages(c('R.matlab'), repos='http://cran.us.r-project.org')

然后使用HTML实现此库。
library(R.matlab)

事后,在R中可能会有一个名为resi的数据帧。
#Save in Matlab v6 format with 'writeMat'
writeMat("resi.mat", labpcexport = resi)

我现在转到Matlab,并通过将结构体转换为单元格,然后将单元格转换为矩阵,在特定目录中调用它

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

我希望这有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接