[Numpy-discussion] Conversion of matlab import containing objects into 3d array

Matthew Brett matthew.brett at gmail.com
Fri Feb 5 16:22:50 EST 2010


HI,

> I'm trying to import data from a matlab file using scipy.io.loadmat.
> One of the variables in the file imports as an array of shape (51,) of
> dtype object, with each element being an array of shape (23,100) of
> dtype float. How do I convert this array into a single array of dtype
> float with shape (51,23,100)? objarr.astype(float), which I thought
> might work (from [1]), gives me the error "ValueError: setting an
> array element with a sequence.".

I guess that your array started life as a matlab cell array of shape (51,1).
As far as I know you'd have to convert long-hand:

np.concatenate(list(a), axis=0).reshape((51,23,100))

sort of thing...

Best,

Matthew



More information about the NumPy-Discussion mailing list