Вы можете сделать это, просто используя scipy.io.loadmat
. Но вы должны быть осторожны из-за некоторых различий в форматах.
from scipy import io
import numpy as np
C = io.loadmat('test.mat')
print type(C)
print C.keys()
Выходы:
<type 'dict'>
['C', '__version__', '__header__', '__globals__']
Итак, вы можете видеть, что scipy
включает в себя кучу дополнительной информации, которая нам на самом деле не нужна, но мы можем видеть вашу ячейку C.
C = C['C']
print type(C)
Выходы:
<type 'numpy.ndarray'>
Итак, я использовал Cell от Matlab.
print C.shape
Выходы:
(1, 81)
Что не совсем правильно, но с небольшой обработкой мы можем сделать так, как вы хотите.
C = np.squeeze(C)
X = np.empty((C.shape[0], C[0].shape[0], C[0].shape[1]))
for i in xrange(X.shape[0]):
X[i] = C[i]
print X.shape
Выходы:
(81, 30, 30)
Вуаля, у нас есть ваша ячейка в массиве numpy
. Как предварительное предупреждение, обычно scikit-learn
принимает в качестве входных данных 2D-массив, а не 3D-массив.
person
piman314
schedule
01.11.2016