2 ms·
I would add that an advantage of Matlab for number bashing is a much more native handling of linear algebra. Let's say you have two matrices A and B, in matlab
by ballooney 14y ago
I would add that an advantage of Matlab for number bashing is a much more native handling of linear algebra. Let's say you have two matrices A and B, in matlab I could write:
A*B*A'
Whereas in python it would be (approximately):
dot(A, dot(B, inverse(A)))
so matlab can evaluate everything in the right order (right to left) whereas for numpy I end up writing a little recursive function to dot a list of arguments together from right to left, which feels a bit cludgey and more of an impediment to getting your ideas down in code. Especially when your equations get very big as they often do with stats!
- lbolla 14y agoIf you intend "matrix multiplication", there is no "right order": "matrix multiplication" is associative (http://en.wikipedia.org/wiki/Matrix_multiplication http://en.wikipedia.org/wiki/Matrix_multiplication). Numpy has a "matrix" type, so you can write: In [7]: A = numpy.matrix('1 2; 3 4; 5 6') In [8]: B = numpy.matrix('1 2 3; 4 5 6') In [9]: C = numpy.matrix('1; 2; 3') In [10]: A * B * C Out[10]: matrix([[ 78], [170], [262]]) In [11]: (A * B) * C Out[11]: matrix([[ 78], [170], [262]]) In [12]: A * (B * C) Out[12]: matrix([[ 78], [170], [262]])
- maxerickson 14y agoIt isn't native, but numexpr is a nice in between: http://code.google.com/p/numexpr/ http://code.google.com/p/numexpr/