matlab日期字符串在python scipy.io中生成java lang字符串

  • 我在Matlab中有一个类型的字段。 它的价值是13:06:40

  • 当我在python中读取这个mat文件时,它被转换为

 MatlabOpaque([ ('', 'java', 'java.lang.String', [[172, 237, 0, 5, 116, 0, 8, 49, 50, 58, 48, 49, 58, 53, 49]])], dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')]) 
  • 我使用scipy.io将其保存回MAT文件,并且我有一个结构,上面有dtype而不是

我可以用python检索时间戳并将其保存为java.lang.String对象吗?

在python中访问包含matlab类的.mat文件

询问一个带有类似loadmat显示的MATLAB类对象:

 MatlabOpaque([ (b'futureDS', b'MCOS', b'cStream', [[3707764736], ...])], dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')]) 

Python中没有任何东西可以解码这种MATLAB或Java对象。 如果你需要在MATLAB和scipy stick之间来回发送数据与基本的MATLAB数组,单元格和结构。

您可以尝试解析该数字列表。 由于它们都是<256,它们可能代表字节。 你不能把它转换成普通的MATLAB字符串吗?

 In [117]: x=[172, 237, 0, 5, 116, 0, 8, 49, 50, 58, 48, 49, 58, 53, 49] In [118]: np.array(x,np.uint8).tostring() Out[118]: b'\xac\xed\x00\x05t\x00\x0812:01:51' 

最后8个字符看起来像时间戳。 但是你对java.lang.String对象有什么了解吗?