如何在R中使用Matlab数据?
我在 Matlab 中有一个 4 维矩阵。我想导出这个矩阵以在 R 中使用它(我想用它来绘图)。对我来说,问题是我不知道如何导出 R 可以使用的矩阵,而且我也不知道如何在 R 中导入数据。基本上,我尝试做的就是导出我的使用 dlmwrite
在 Matlab 中导入矩阵,并使用 read.table()
将其导入到 R 中。不幸的是这不起作用。
Well I have a matrix in Matlab, with 4 dimensions. I'd like to export this matrix to use it in R (I want to plot with it). The problem for me is that I don't know how to export a matrix that can be used by R, and also I don't know how to import data in R. Basically, what I've tried to do is to export my matrix in Matlab using dlmwrite
, and importing it in R using read.table()
. Unfortunately this isn't working.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 fwrite 将任何数组写入二进制文件,并使用 readBin 将其读入 R。在 R 中,这将给出一个向量,您可以使用 array() 或 matrix() 将其推入形状。
这是一个非常简单的例子。
ans =
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 中:
[,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
您可以用 4D 数组替换“a”,并将 R 代码更改为此,它应该同样有效:
最后,请注意这假设 Matlab 和 R 中的字节顺序相同。如果您的终端系统不同,请参阅 Matlab fwrite 帮助中的机器格式。
You can write out any array to binary with fwrite, and read it into R with readBin. In R that will give a vector that you can push into shape with array() or matrix().
Here's a very simple example.
ans =
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
Now in R:
[,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
You could replace "a" with a 4D array, and change the R code to this and it should work just as well:
Finally, note that this assumes the same byte ordering in Matlab and R. See machineformat in the Matlab fwrite help if your end systems are different.