[Numpy-discussion] Matlab page on scipy wiki
Sebastian Haase
haase at msg.ucsf.edu
Thu Mar 2 20:18:03 EST 2006
Hi,
I noted on
http://www.scipy.org/Wiki/NumPy_for_Matlab_Users
matlab a(1:5,:)
numpy a[0:4] or a[0:4,:] a[0:4] or a[0:4,:]
the first five rows of a
I think this is wrong!
in numpy it would be: a[:5] (or a[0:5] ) for the first five elements
To the best of my knowledge (I have never used Matlab myself!) this is
one of the biggest points of confusion for Matlab users !!
WHY DOES a[4:6] NOT INCLUDE THE ELEMENTS 4,5 *AND* 6 ???
The only explanation I have is that its
a) like a C/C++-for-loop (for(i=4;i<6;i++) --> note the '<' (not '<=')
b) it then also always is true that: "last" minus first is equal to
number-of-elements (example: 6-4 = 2)
c) it turns out from experience that this convention WILL save you lots
of '-1' and '+1' in your code (actually almost all of them)
[if I see a "+1" in a Matlab person's numpy code I can almost always
guess that he/she made a mistake !]
Maybe this paragraph could be added to the wiki ...
Thanks for this wiki page - I think I looks great
- Sebastian Haase
More information about the NumPy-Discussion
mailing list