Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我想将一些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函数 更多&回答... |
![]() |
![]() |