将数组从Matlab导入到R中 [英] Importing an array from matlab into R

查看:99
本文介绍了将数组从Matlab导入到R中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我确定这是一个简单的问题,但是我找不到明显的解决方案.我有一系列在matlab中生成的模型输出数组文件(尺寸180、360、12),需要在R中打开.

I'm sure this is a simple problem, but I haven't been able to find an obvious solution. I have a series of model output array files (dim 180, 360, 12) generated in matlab that I need to open in R.

我试图仅使用readMat命令来使用R.matlab程序包,这将导致一个列表对象.尝试将此列表写入矩阵会导致内存分配错误.

I have attempted to use the R.matlab package, simply using the readMat command, and this results in a list object. Attempting to write this list into a matrix results in a memory allocation error.

我尝试了不公开,但这也没有帮助.

I have tried unlisting, but that did not help either.

如何打开这些matlab矩阵文件并在R中以矩阵形式编写?有什么想法吗?

How can I open these matlab matrix files and write as a matrix in R? Any thoughts?

代码很简单:

> data<-readMat("filename")
> typeof(data)
[1] "list"
> str(data)
List of 1
 $ pco2: num [1:180, 1:360, 1:12] NaN NaN NaN NaN NaN ...
 - attr(*, "header")=List of 3
 ..$ description: chr "MATLAB 5.0 MAT-file, Platform: GLNXA64, Created on: Thu Jul 26 10:36:42 2012 "
 ..$ version : chr "5"
 ..$ endian : chr "little

推荐答案

请仔细检查MATLAB中的文件,并确保并非所有值均为NaN.只需将文件加载到MATLAB中并检查其内容即可:

Please double check your file inside MATLAB, and make sure not all values are NaN. Simply load the file in MATLAB and inspect the contents:

load file.mat

这是我刚刚做的一个简单测试:

Here is a simple test I just did:

>> x = rand(3,4,2)

x(:,:,1) =
      0.75127      0.69908      0.54722      0.25751
       0.2551       0.8909      0.13862      0.84072
      0.50596      0.95929      0.14929      0.25428
x(:,:,2) =
      0.81428      0.34998      0.61604      0.83083
      0.24352       0.1966      0.47329      0.58526
      0.92926      0.25108      0.35166      0.54972

>> save file.mat x

R

R> library(R.matlab)
R> data <- readMat('file.mat')
R> str(data)
List of 1
 $ x: num [1:3, 1:4, 1:2] 0.751 0.255 0.506 0.699 0.891 ...
 - attr(*, "header")=List of 3
  ..$ description: chr "MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: ..."
  ..$ version    : chr "5"
  ..$ endian     : chr "little"
R> data$x
, , 1

       [,1]   [,2]   [,3]   [,4]
[1,] 0.7513 0.6991 0.5472 0.2575
[2,] 0.2551 0.8909 0.1386 0.8407
[3,] 0.5060 0.9593 0.1493 0.2543

, , 2

       [,1]   [,2]   [,3]   [,4]
[1,] 0.8143 0.3500 0.6160 0.8308
[2,] 0.2435 0.1966 0.4733 0.5853
[3,] 0.9293 0.2511 0.3517 0.5497

这篇关于将数组从Matlab导入到R中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆