I'm looking for a clear comparison of meshgrid-like functions. Unfortunately I don't find it!
Numpy http://docs.scipy.org/doc/numpy/reference/ provides
numpy.meshgrid is modelled after Matlab's
meshgrid command. It is used to vectorise functions of two variables, so that you can write
x = numpy.array([1, 2, 3]) y = numpy.array([10, 20, 30]) XX, YY = numpy.meshgrid(x, y) ZZ = XX + YY ZZ => array([[11, 12, 13], [21, 22, 23], [31, 32, 33]])
ZZ contains all the combinations of
y put into the function. When you think about it,
meshgrid is a bit superfluous for numpy arrays, as they broadcast. This means you can do
XX, YY = numpy.atleast_2d(x, y) YY = YY.T # transpose to allow broadcasting ZZ = XX + YY
and get the same result.
ogrid are helper classes which use index notation so that you can create
YY in the previous examples directly, without having to use something like
linspace. The order in which the output are generated is reversed.
YY, XX = numpy.mgrid[10:40:10, 1:4] ZZ = XX + YY # These are equivalent to the output of meshgrid YY, XX = numpy.ogrid[10:40:10, 1:4] ZZ = XX + YY # These are equivalent to the atleast_2d example
I am not familiar with the scitools stuff, but
ndgrid seems equivalent to
BoxGrid is actually a whole class to help with this kind of generation.