Numpy/MATLAB difference in array indexing

4 messages
Open this post in threaded view
|

Numpy/MATLAB difference in array indexing

 Hi everyone,I was trying to port some code from MATLAB to Scipy, and I noticed a slight bug in the functionality of numpy.tile vs repmat in matlab:For example:a = np.random.rand(10,2)b = tile(a[:,1],(1,5)) b.shapeOut[86]: (1, 50)While MATLAB gives:>>  a = rand(10,2);>> b = repmat(a(:,1),[1,5]);>> size(b)ans =    10     5This is obviously trivial to fix**, but I'm wondering what causes the difference?  If you take a vertical slice of an array in numpy that's seen as a row vector, while in MATLAB its seen as a column vector? Is it worth making a note in here:  http://www.scipy.org/NumPy_for_Matlab_Users ?Federico**The easiest way I found was:b = tile(a[:,1],(5,1)).T _______________________________________________ SciPy-User mailing list [hidden email] http://mail.scipy.org/mailman/listinfo/scipy-user
Open this post in threaded view
|

Re: Numpy/MATLAB difference in array indexing

 18.03.2012 23:18, federico vaggi kirjoitti: > I was trying to port some code from MATLAB to Scipy, and I noticed a > slight bug in the functionality of numpy.tile vs repmat in matlab: > > For example: > > a = np.random.rand(10,2) > > b = tile(a[:,1],(1,5)) a[:,1] is an 1-d array, and therefore considered as a (1, N) vector in 2-d context. This is not a bug --- the Numpy constructs do not always map exactly to Matlab ones. -- Pauli Virtanen _______________________________________________ SciPy-User mailing list [hidden email] http://mail.scipy.org/mailman/listinfo/scipy-user