使用scipy.io.loadmat()读取浮点值 - 有点准确吗?

时间:2016-10-20 22:52:31

标签: matlab scipy

我想将Matlab / Simulink中的单精度浮点值传递到我的Python脚本中。 Matlab / Simulink中的数据保存到V7 MAT文件中(这样我就可以使用scipy.io.loadmat())。在loadmat()之后,可以在Python字典中找到这些浮点值。 我的问题是我在Python中获得的浮点值是否与最初在Matlab / Simulink中的浮点值相同,直到最后一位。

例如,浮点值0.32是'00111110101000111101011100001010'。 当这个“0.32”读入Python时,我可以重现精确的位表示,仅此而已吗?

2 个答案:

答案 0 :(得分:2)

MATLAB和Python都使用IEEE 754单精度格式来表示32位浮点数 - 您可以保证两者都使用完全相同的表示来表示相同的浮点值。

答案 1 :(得分:0)

我已经从MATLAB / Simulink环境和Python环境(在scipy.io.loadmat()之后)浮点值生成二进制字符串。它们与最后一位相同。因此,您可以使用scipy.io.loadmat()准确地将数据传输到Python环境。