In [25]: from scipy import io
In [26]: cell = np.array(np.array([1,2,3]), object)
In [27]: cell
Out[27]: array([1, 2, 3], dtype=object)
In [28]: io.savemat('test.mat', {'result':cell})
In [29]: io.loadmat('test.mat')
Out[29]:
{'__header__': b'MATLAB 5.0 MAT-file Platform: posix, Created on: Wed Oct 9 09:16:37 2019',
'__version__': '1.0',
'__globals__': [],
'result': array([[array([[1]]), array([[2]]), array([[3]])]], dtype=object)}
Итак, как в исходном cell
, так и в загрузке у нас есть массив из 3 элементов, каждый из которых представляет собой число, или массив 2d.
Давайте создадим массив из одного элемента,с этим элементом является сам массив:
In [30]: cell = np.empty((1,1),object)
In [31]: cell
Out[31]: array([[None]], dtype=object)
In [32]: cell[0,0] = np.array([1,2,3])
In [33]: cell
Out[33]: array([[array([1, 2, 3])]], dtype=object)
In [34]: io.savemat('test.mat', {'result':cell})
In [35]: io.loadmat('test.mat')
Out[35]:
{'__header__': b'MATLAB 5.0 MAT-file Platform: posix, Created on: Wed Oct 9 09:18:55 2019',
'__version__': '1.0',
'__globals__': [],
'result': array([[array([[1, 2, 3]])]], dtype=object)}