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

3 投票
1 回答
3399 浏览
提问于 2025-04-18 04:29

我知道这个问题很简单,我也不敢相信我在其他地方没找到相关的信息,但我还是想问一下:

我在Python中有一个很大的高维矩阵,我想把它保存成.mat格式(为了在matlab中使用)。我用的是scipy.io.savemat这个方法来保存这个矩阵,但它总是以双精度(double)格式保存。我想把它保存成更低精度的格式,比如单精度(single)或16位浮点数。

我在保存之前把数组转换成低精度的数据类型,但它还是总是以双精度保存。难道真的没有办法把.mat文件保存成低精度的浮点数类型吗?

.savemat似乎不支持dtype这个参数。

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

1 个回答

3

看起来这个函数只支持单精度或双精度浮点数。scipy.io.savemat() 不支持其他的浮点数精度,如果你传入的类型不合适,它会自动默认为双精度,但不会给你任何提示。

撰写回答