r - 如何在R中使用Matlab数据?

标签 r matlab import matrix export

我在 Matlab 中有一个 4 维矩阵。我想导出这个矩阵以在 R 中使用它(我想用它来绘图)。对我来说,问题是我不知道如何导出 R 可以使用的矩阵,而且我也不知道如何在 R 中导入数据。基本上,我尝试做的就是导出我的使用 dlmwrite 在 Matlab 中导入矩阵,并使用 read.table() 将其导入到 R 中。不幸的是,这不起作用。

最佳答案

您可以使用 fwrite 将任何数组写入二进制文件,并使用 readBin 将其读入 R。在 R 中,这将给出一个向量,您可以使用 array() 或 matrix() 将其插入形状。

这是一个非常简单的例子。

a = magic(4)

con = fopen('a.bin', 'w');
fwrite(con, a * 0.01, 'float64')
fclose(con)

a * 0.01

答=

0.1600 0.0200 0.0300 0.1300

0.0500 0.1100 0.1000 0.0800

0.0900 0.0700 0.0600 0.1200

0.0400 0.1400 0.1500 0.0100

现在在 R 中:

 matrix(readBin("a.bin", "double", 16), 4)

[,1] [,2] [,3] [,4]

[1,]0.16 0.02 0.03 0.13

[2,]0.05 0.11 0.10 0.08

[3,]0.09​​ 0.07 0.06 0.12

[4,]0.04 0.14 0.15 0.01

您可以将“a”替换为 4D 数组,并将 R 代码更改为此,它应该也能正常工作:

## assume 4 dimensions with particular sizes
dims <- c(10, 5, 2, 3)
a <- array(readBin("a.bin", "double", prod(dims)), dims)

最后,请注意,这假定 Matlab 和 R 中的字节顺序相同。如果您的终端系统不同,请参阅 Matlab fwrite 帮助中的机器格式。

关于r - 如何在R中使用Matlab数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4315181/

相关文章:

r - 聚合或汇总以获得比率

r - 通过在 R 中的数据表中的行上添加条件来创建新列

matlab - 根在函数中不起作用

arrays - 如何在 Matlab 中复制结构域(非标量结构)?

matlab - 清晰可分离数据的机会级别精度

Python:从 1+ 级别向下导入

R plyr 应用于行

r - 在 tagcloud 中保留大写字母

import - Pycharm导入无法识别同一模块中的其他文件

java - 查看导入被调用的位置