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

标签 java python matlab scipy

  • 我有一个类型为 <1x1 java.lang.String> 的字段在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 的结构,而不是 <1x1 java.lang.String>

有什么方法可以使用 python 检索时间戳并将其保存为 java.lang.String 对象吗?

最佳答案

Access .mat file containing matlab classes in python

询问具有类似 loadmat 显示的 MATLAB 类对象:

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

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

您可以尝试解析该 arr 数字列表。由于它们都<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 对象吗?

关于java - matlab 日期字符串在 python scipy.io 中生成 java lang 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32913301/

相关文章:

python - 从数组中随机翻转 m 个值

matlab - 轴标签是不可见的?

arrays - 如何总结单元格数组中的所有数组(相同大小)?

java - 忽略 hibernate native 查询中的空列表

java - 有什么理由不在 Java 类型参数前加上美元符号?

python - 从 2D 数组滑动窗口,沿 axis=0 或 rows 滑动以给出 3D 数组

从c调用matlab ifft

Java FX TranslateTransition 持续时间更改

java - 运行批处理文件时当前目录无效

python - Pycharm 警告 SqlAlchemy 模型中出现意外类型