我正在尝试使用R.matlab将一个matlab文件读入R中,但遇到了这个错误:
require(R.matlab)
r <- readMat("file.mat", verbose=T)
Trying to read MAT v5 file stream...
Error in readTag(this) : Unknown data type. Not in range [1,19]: 18569
In addition: Warning message:
In readMat5Header(this, firstFourBytes = firstFourBytes) :
Unknown MAT version tag: 512. Will assume version 5.
如何解决此问题或是否有其他方法来加载matlab文件?我可以使用hdf5load,但听说这可能会弄乱数据。谢谢!
答案 0 :(得分:1)
这在回复上有点晚,但我最近遇到了同样的问题。对我来说,问题是我默认使用&#39; -v7.3&#39;来保存matlab文件。选项。经过广泛搜索后,R.matlab源文档(http://cran.r-project.org/web/packages/R.matlab/R.matlab.pdf)表明以下内容:
阅读压缩的MAT文件
从MATLAB v7开始,默认使用压缩的MAT版本5文件 [3,4]。此功能支持阅读 文件,如果运行R v2.10.0或更新版本。对于旧版本的R, 使用Rcompression包。要安装该软件包,请参阅 http://www.omegahat.org/ cranRepository.html上的说明。作为一个 最后,在MATLAB中使用save -V6来编写MAT文件 兼容MATLAB v6,即编写非压缩MAT 版本5文件。
关于使用'-v7.3'保存在MATLAB中的MAT文件
此功能没有 支持保存在MATLAB中的MAT文件保存(&#39; foo.mat&#39;, &#39; -v7.3&#39)。这些MAT文件具有完全不同的文件格式 [5,6]与那些保存的比较,比如&#39; -v7&#39;。&#34;
添加&#39; -v7&#39;我的保存命令末尾的选项修复了此问题。 即:保存(&#39;文件名&#39;,&#39;变量&#39;,&#39; -v7&#39;)
答案 1 :(得分:0)
我有一个非常类似的问题,直到我将该函数指向一个存在的实际.mat文件。在那之前我一直在指定两个同名的文件,但一个是.mat而另一个是.txt,所以它可能一直试图打开另一个。
我意识到这可能不能直接解决你的问题(我在错误信息中看到的唯一区别是没有第一行“正在尝试......”以及此后的具体数字以及另外几个类似警告的奇数存在),但它可能指向一些简单的文件名问题作为问题。
我在64位vista上使用最新的matlab,在32位xp上使用最新的R。