在scipy.io.savemat中以不同的数字数据格式保存mat文件

时间:2014-04-27 16:58:12

标签: python matlab scipy

我知道这很简单,我无法相信我在这里找不到任何东西,但在这里它是:

我在python中有一个大的高维矩阵,我想以.mat格式保存(对于matlab)。 我使用scipy.io.savemat方法来保存此矩阵,但它总是保存为double。我想将它保存为较低精度的东西,如单个或16位浮点数。

我在保存之前将数组转换为低精度数据类型,但它总是保存为double。真的没有办法在低精度浮点类型中保存mat文件吗?

.savemat似乎没有采用dtype参数。

 import scipy as sp
 sp.io.savemat('test.mat', {'test': sp.array([0.001, 1, 1.004], dtype='Float16')})

1 个答案:

答案 0 :(得分:2)

显然它需要是单人或双人。 scipy.io.savemat()不支持其他浮点精度,如果它不喜欢没有警告的dtype,它会随便默认为double。