【发布时间】:2011-01-24 15:31:25
【问题描述】:
我想将一些 MAT 文件转换为 XML(每个 .mat 文件都包含一个层次结构),以便我可以从其他软件(如 R、Python)访问数据。这些 MAT 文件是在 Matlab 6.5 中生成的,因此它们不在 HDF5 数据格式规范中。有一个用户贡献的 XML 工具箱(从 2003 年开始),它表明从 MAT 到 XML 的简单转换是可能的:
http://www.mathworks.com/matlabcentral/fileexchange/4278
但我似乎在使用 xml_format 函数时遇到了错误:
??? NaN's cannot be converted to logicals.
我尝试转换的数据结构嵌套在具有多种数据类型(数组等)的多个级别上,因此我可能必须编写自己的导出函数。我正在使用 Matlab 版本 7.10.0.499 (R2010a) 64 位 (maci64) 所以我应该可以使用 xmlwrite 和 xmlread 函数:
http://www.mathworks.com/help/techdoc/import_export/f5-86078.html#bsmnj5u
但是,当我尝试效仿他们时,
docNode = com.mathworks.xml.XMLUtils.createDocument('root_element')
我收到一个错误:
??? Undefined variable "com" or class
如果我尝试查看加载了哪些 java 类,我会得到
[M,X,J] = inmem;
J =
'MException'
虽然在我的$matlabroot/toolbox/local/classpath.txt 中似乎加载了很多 Java 类。
我是否需要安装 Java 模块或添加额外的路径,或其他东西才能使其正常工作?或者您有什么建议可以从 MAT 转到另一种允许任意嵌套结构(其中一些包含图像的数组表示)的常见数据交换格式?我没有看到太多 MAT 到 HDF5 转换的方式,这似乎也是从 MAT 到 XML 的合理替代方案......谢谢~
【问题讨论】:
-
你对classpath.txt做了修改吗? 'com' 错误似乎是您的 MATLAB 安装的问题。使用不同的 MATLAB 版本,但在同一平台上,我无法重现您的错误。
-
@zellus -- 不,我没有做任何修改...应该吗?