【问题标题】:How to get R data into a matlab matrix如何将 R 数据转换为 matlab 矩阵
【发布时间】:2013-03-04 16:09:59
【问题描述】:

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

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

我没有使用matlab的经验,所以请耐心等待:

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

我想把它变成一个矩阵形式。我试过了:

data=struct2cell(x) 

但这看起来不太对劲。顺便说一句,数据是十进制数字。

【问题讨论】:

  • R 中的数据矩阵类是什么?它是数字矩阵还是数据框?另外,“看起来不太正确”是什么意思?究竟是什么问题?
  • 根据发布指南,请提供一个小的、可重复的数据样本,包括typeof 上的信息。

标签: r matlab matrix


【解决方案1】:

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

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

您可能想要的另一种方法是在 MATLAB 中将元胞数组转换为矩阵:

datanum = cell2mat(data');

【讨论】:

  • 谢谢,因为我的数据是一个data.frame。 :)
【解决方案2】:

如果您使用的是 Jupyter 笔记本。我认为您要做的是首先使用

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

然后使用

实现这个库
library(R.matlab)

之后,你可能在 R 中有一个数据框,比如 resi

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

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

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多