## NDGRID Generate N-Dimensional Grid

Section: Array Generation and Manipulations

### Usage

Generates N-dimensional grids, each of which is constant in all but one dimension. The syntax for its use is either

       [y1, y2, ..., ym] = ndgrid(x1, x2, ..., xn)

where `m <= n` or

       [y1, y2, ..., ym] = ndgrid(x1)

which is equivalent to the first form, with `x1=x2=...=xn`. Each output `yi` is an `n`-dimensional array, with values such that

`ndgrid` is useful for evaluating multivariate functionals over a range of arguments. It is a generalization of `meshgrid`, except that `meshgrid` transposes the dimensions corresponding to the first two arguments to better fit graphical applications.

### Example

Here is a simple `ndgrid` example

    --> [a,b] = ndgrid(1:2,3:5)
    a =
     1 1 1
     2 2 2

    b =
     3 4 5
     3 4 5

    --> [a,b,c] = ndgrid(1:2,3:5,0:1)
    a =

    (:,:,1) =
     1 1 1
     2 2 2

    (:,:,2) =
     1 1 1
     2 2 2

    b =

    (:,:,1) =
     3 4 5
     3 4 5

    (:,:,2) =
     3 4 5
     3 4 5

    c =

    (:,:,1) =
     0 0 0
     0 0 0

    (:,:,2) =
     1 1 1
     1 1 1

Here we use the second form

    --> [a,b,c] = ndgrid(1:3)
    Warning: Newly defined variable nargin shadows a function of the same name.  Use clear nargin to recover access to the function
    a =

    (:,:,1) =
     1 1 1
     2 2 2
     3 3 3

    (:,:,2) =
     1 1 1
     2 2 2
     3 3 3

    (:,:,3) =
     1 1 1
     2 2 2
     3 3 3

    b =

    (:,:,1) =
     1 2 3
     1 2 3
     1 2 3

    (:,:,2) =
     1 2 3
     1 2 3
     1 2 3

    (:,:,3) =
     1 2 3
     1 2 3
     1 2 3

    c =

    (:,:,1) =
     1 1 1
     1 1 1
     1 1 1

    (:,:,2) =
     2 2 2
     2 2 2
     2 2 2

    (:,:,3) =
     3 3 3
     3 3 3
     3 3 3