This is a set of functions to convert between different representations of a grid. The motivation comes from the incompatibility of meshgrid matrices with vector functions that take a matrix of column vectors as argument.
There are three representations:
1) domain (i.e., an N-dimensional rectangular domain),
2) meshgrid matrices (e.g. X, Y needed by surf) and
3) matrix of column vectors (i.e., [v1, v2, ..., vM] where vi=[#dim x 1] ).
The functions provided here can generate a meshgrid from a domain, convert that to a matrix of column vectors for use with a vectorized function and then convert the results back to meshgrid representation.
For example, you can start with a 2D domain, convert that directly to a matrix of vectors q, calculate a row vector z = f(q) for a surface using some vectorized scalar function f, convert that to meshgrid coordinate matrix Z and plot it using surf. For example code, see test_vectorized_surf_plot.