[SciPy-dev] matlab.io squeezes by default
Nathan Bell
wnbell at gmail.com
Tue Feb 12 20:59:33 EST 2008
I noticed that scipy.io.loadmat() had squeeze_me=True set by default.
Was there a compelling reason for this default choice? I would think
that most people expect (1,N) matrices and (N,1) matrices to retain
their shapes when loaded. Here's a simple example that illustrates
the problem.
from scipy.testing import *
from scipy import array, matrix
from scipy.io import savemat, loadmat
A = matrix([[1,2,3]])
B = matrix([[1],[2],[3]])
X = {'A' : A, 'B' : B }
savemat('temp.mat', X )
#Y = loadmat('temp.mat', squeeze_me=False) # preserves shape
Y = loadmat('temp.mat') #does not preserve shape
assert_equal( Y['A'], A)
assert_equal( Y['B'], B)
For now, I have changed the default to squeeze_me=False.
--
Nathan Bell wnbell at gmail.com
http://graphics.cs.uiuc.edu/~wnbell/
More information about the SciPy-Dev
mailing list