我在 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/