![]() |
在Matlab和R之间共享大型数据集
我需要一种相对有效的方法来在Matlab和[URL="http://en.wikipedia.org/wiki/R_(programming_language)"]R[/URL]之间共享数据。
我已经检查过[URL="http://www.mathworks.com/matlabcentral/fileexchange/28370"][B]SaveR[/B][/URL]和[URL="http://www.mathworks.com/matlabcentral/fileexchange/5051"][B]MATLAB R-link[/B][/URL] ,但是[B]SaveR首先将[/B] Matlab的二进制数据[URL="http://en.wikipedia.org/wiki/Serialization"]格式化[/URL]为文本字符串,然后将它们打印到ASCII文件,这对于大型数据集而言效率不高,而且[B]MATLAB R-link[/B]仅在Windows上有效(它使用基于COM的界面)。 [B]更新: [/B] Dirk发布了一份清单,列出了比[B]SaveR[/B]和[B]Matlab R-link[/B]更好的解决方案。我最近还了解了[URL="http://en.wikipedia.org/wiki/RAM_disk"][B]RAM磁盘[/B][/URL] (有关一些实现示例,请参见[URL="https://superuser.com/questions/34388/whats-the-best-ramdisk-for-windows"]此处[/URL]和[URL="https://superuser.com/questions/175861/ramdisk-ubuntu-10-04"]此处[/URL] ),并认为它们可能有助于进一步在Matlab和R(或类似的计算环境)之间共享大型数据集。这使我想到以下问题: 假设数据适合在Matlab或R的本机数据容器中的机器内存中: [LIST=1][*]到目前为止列出的解决方案是否更适合RAM磁盘? [*]在处理RAM磁盘而不是二级存储解决方案时,是否还要考虑其他因素? [/LIST]谢谢! [B]回答:[/B] 需要注意的是,我有一些关于R方面的知识: [LIST][*] CRAN上的[URL="http://cran.r-project.org/package=R.matlab"]R.matlab[/URL]软件包可以帮助您: [I]该软件包提供读取和写入MAT文件的方法。它还使与在本地或远程主机上运行的Matlab v6或更高版本进行通信(评估代码,发送和检索对象等)成为可能。[/I] [*]正如您所建议的, [URL="http://en.wikipedia.org/wiki/HDF5"]HDF5[/URL]是可能的,但我听说CRAN软件包[URL="http://cran.r-project.org/web/packages/hdf5/index.html"]hdf5[/URL]中的R支持有些基本 [*] [URL="http://www.unidata.ucar.edu/software/netcdf/"]NetCDF[/URL]可能是替代方案; CRAN具有软件包[URL="http://cran.r-project.org/package=RNetCDF"]RNetCDF[/URL] , [URL="http://cran.r-project.org/package=ncdf"]ncdf[/URL]和[URL="http://cran.r-project.org/package=ncdf4"]ncdf4[/URL] [*]使用数据库,尤其是轻量级和基于文件的数据库,例如SQLite或H4,它们都具有R支持 [*]使用通用的序列化/反序列化格式; R通过[URL="http://dirk.eddelbuettel.com/code/rprotobuf.html"]RProtoBuf[/URL]支持Google协议缓冲区,Google指向用于Matlab的[URL="http://code.google.com/p/protobuf-matlab/"]protobuf-matlab[/URL] [*]自己写!尤其是当您只需要基本的东西(例如大矩形矩阵)时,没有什么比直接的二进制写更好。几年前,我为Octave(与Matlab接近)进行了此操作。您可以通过mex文件扩展Matab。 R有它的API和诸如[URL="http://dirk.eddelbuettel.com/code/rcpp.html"]Rcpp的[/URL]助手。数据集越大,保存转换时看起来就越有吸引力。 [/LIST] [url=https://stackoverflow.com/questions/4771144]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 23:19。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.