我正在尝试将其值为不同长度的 numpy 数组的字典保存到 mat 文件中,以便协作者可以在 MATLAB 中将字典作为元胞数组加载。
输入示例:
data={traces: {0: array([], dtype=float64), 1: array([], dtype=float64),
2: array([], dtype=float64), 3: array([], dtype=float64),
4: array([], dtype=float64), 5: array([], dtype=float64),
6: array([], dtype=float64), 7: array([], dtype=float64),
8: array([], dtype=float64), 9: array([], dtype=float64)}}
savemat('test.mat', mdict=data)
但是,我收到错误:
TypeError: Could not convert {0: array([], dtype=float64), 1: array([], dtype=float64),
2:array([], dtype=float64), 3: array([], dtype=float64), 4: array([], dtype=float64),
5: array([], dtype=float64), 6: array([], dtype=float64), 7: array([], dtype=float64),
8: array([], dtype=float64), 9: array([], dtype=float64)} (type <type 'dict'>) to array
如何将这本词典保存到 mat 文件中?
最佳答案
您正在定义一个带有键“轨迹”和字典值的字典。删除“痕迹”,将键值替换为字符串而不是 int (0) 或数字字符串 ('0'),并正常保存在 Python 中。
from scipy.io import savemat
from numpy import *
data={'t0': array([], dtype=float64), 't1': array([], dtype=float64),
't2': array([], dtype=float64), 't3': array([], dtype=float64),
't4': array([], dtype=float64), 't5': array([], dtype=float64),
't6': array([], dtype=float64), 't7': array([], dtype=float64),
't8': array([], dtype=float64), 't9': array([], dtype=float64)}
# print data
savemat('test.mat', data, oned_as='row')
您可以通过
在 MATLAB 中加载traces = load('test.mat');
关于python - 无法将 dict 保存到 mat 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12571879/