我想将一些MAT文件转换为XML(每个.mat文件都包含分层结构),以便可以从其他软件(如R,Python)访问数据。这些MAT文件是在Matlab 6.5中生成的,因此不在HDF5数据格式规范中。有一个用户提供的XML工具箱(从2003年开始),建议从MAT到XML的简单转换是可能的:
http://www.mathworks.com/matlabcentr...eexchange/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/techdo...8.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的合理替代方案...谢谢〜
回答:
由于更新的Mat文件只是具有翻转行/列的HDF5文件,因此您只需编写新的matlab即可将其放入HDF5。
要将旧的mat文件转换为较新的HDF5格式,只需在matlab中打开它们并重新保存
s=open('AFile.mat') save('AFile.mat','-struct','s') 或者
您还可以探索hdf5write函数
更多&回答...